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