R语言变量与常量 #

一、变量概述 #

变量是存储数据值的容器。在R语言中,变量可以存储各种类型的数据,包括数字、字符串、向量、数据框等。

二、变量定义 #

2.1 赋值运算符 #

R语言有多种赋值运算符:

r
x <- 10
x = 10
10 -> x

x <<- 10

2.2 推荐使用 <- #

r
x <- 10
y <- "Hello"
z <- c(1, 2, 3)

2.3 赋值运算符的区别 #

r
mean(x = 1:5)
x

mean(x <- 1:5)
x

2.4 <<- 超赋值运算符 #

<<-用于在函数内部修改外部作用域的变量:

r
x <- 10

my_func <- function() {
  x <<- 20
}

my_func()
print(x)

三、变量命名规则 #

3.1 合法命名 #

r
x <- 1
my_var <- 2
myVar <- 3
my.var <- 4
.var <- 5
var2 <- 6

3.2 非法命名 #

r
2var <- 1
_var <- 2
my-var <- 3
.2var <- 4
if <- 5

3.3 命名约定 #

风格 示例 推荐场景
snake_case my_variable 变量、函数
camelCase myVariable 变量、函数
dot.case my.variable 避免使用
r
推荐
student_name <- "张三"
student_age <- 20
calculate_average <- function(x) mean(x)

避免
my.data <- data.frame(x = 1:10)

四、变量类型 #

4.1 查看变量类型 #

r
x <- 10
class(x)
typeof(x)
mode(x)
storage.mode(x)

4.2 检查变量类型 #

r
x <- 10
is.numeric(x)
is.integer(x)
is.character(x)
is.logical(x)
is.vector(x)
is.list(x)
is.data.frame(x)

4.3 类型转换 #

r
x <- 3.14
as.integer(x)
as.character(x)
as.logical(x)

y <- "123"
as.numeric(y)

五、变量作用域 #

5.1 全局变量 #

在函数外部定义的变量是全局变量:

r
x <- 10

my_func <- function() {
  print(x)
}

my_func()

5.2 局部变量 #

在函数内部定义的变量是局部变量:

r
my_func <- function() {
  y <- 20
  print(y)
}

my_func()
print(y)

5.3 作用域规则 #

R使用词法作用域(Lexical Scoping):

r
x <- 10

outer_func <- function() {
  x <- 20
  inner_func <- function() {
    print(x)
  }
  inner_func()
}

outer_func()

5.4 global使用 #

r
x <- 10

my_func <- function() {
  global_x <- globalenv()$x
  print(global_x)
}

my_func()

六、变量管理 #

6.1 查看变量 #

r
ls()
ls.str()
objects()

6.2 删除变量 #

r
x <- 10
rm(x)

rm(x, y, z)
rm(list = ls())

6.3 检查变量是否存在 #

r
x <- 10
exists("x")
exists("y")

6.4 获取变量值 #

r
x <- 10
get("x")

七、常量 #

R语言没有内置的常量概念,但可以通过约定来表示常量。

7.1 命名约定 #

使用全大写字母表示常量:

r
PI <- 3.14159
MAX_VALUE <- 100
APP_NAME <- "MyApp"

7.2 使用lockBinding #

r
PI <- 3.14159
lockBinding("PI", globalenv())

PI <- 3.14

7.3 内置常量 #

r
pi
LETTERS
letters
month.name
month.abb

八、特殊值 #

8.1 NULL #

r
x <- NULL
is.null(x)
length(NULL)

8.2 NA #

r
x <- NA
is.na(x)

x <- c(1, NA, 3)
is.na(x)

8.3 Inf和-Inf #

r
x <- 1 / 0
is.infinite(x)

y <- -1 / 0
is.infinite(y)

8.4 NaN #

r
x <- 0 / 0
is.nan(x)

九、最佳实践 #

9.1 变量命名建议 #

r
好的命名
student_count <- 30
average_score <- 85.5
is_valid <- TRUE

不好的命名
x <- 30
sc <- 85.5
flag <- TRUE

9.2 避免覆盖内置函数 #

r
避免
c <- 10
mean <- 20
data <- 30

推荐
count <- 10
avg_value <- 20
my_data <- 30

9.3 使用有意义的名称 #

r
好的命名
total_sales <- sum(sales_data)
customer_age <- 25

不好的命名
ts <- sum(sales_data)
ca <- 25

十、总结 #

本章学习了:

  • 变量定义和赋值运算符
  • 变量命名规则和约定
  • 变量类型检查和转换
  • 变量作用域规则
  • 变量管理操作
  • 常量的表示方法
  • 特殊值的使用

掌握变量和常量是学习R语言的基础,接下来让我们深入学习各种数据类型!

最后更新:2026-03-27