在 R 语言里,`$` 只有一个作用 按名字提取“列表型”对象里的单个元素 对象 $ 名字
在 R 语言里,$
只有一个作用:
按名字提取“列表型”对象里的单个元素(最常见的是 data.frame
/tibble
的列)。
语法
对象 $ 名字
结果
返回该名字对应的向量(或子列表、子成分)。
最常见场景——取数据框的列
df <- data.frame(id = 1:3,name = c("Alice", "Bob", "Carol"),age = c(21, 27, 23)
)df$name # 返回字符向量:c("Alice", "Bob", "Carol")
df$age # 返回数值向量:c(21, 27, 23)
等价写法
df[["name"]] # 与 df$name 完全等价,只是写起来多两个字符
df[, "name"] # 也是同一列,但返回的是 data.frame(除非加 drop = TRUE)
对纯 list 同样有效
lst <- list(a = 1:3, b = letters[1:5])
lst$b # 返回 "a" "b" "c" "d" "e"
不能用在矩阵、向量、环境等其他类型上
m <- matrix(1:6, 2, 3)
m$V1 # 报错:$ 无效,矩阵不是列表
1:5$x # 报错:原子向量不能用 $
一句话总结
$
就是 “列表/数据框专用点号”:
df$colName
等价于 df[["colName"]]
,用来快速提取某一列(或列表成分)的向量。