在 R 语言里,`$` 只有一个作用 按名字提取“列表型”对象里的单个元素 对象 $ 名字

在 R 语言里,$ 只有一个作用:
按名字提取"列表型"对象里的单个元素 (最常见的是 data.frame/tibble 的列)。

语法

r 复制代码
对象 $ 名字

结果

返回该名字对应的向量(或子列表、子成分)。


最常见场景------取数据框的列

r 复制代码
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)

等价写法

r 复制代码
df[["name"]]   # 与 df$name 完全等价,只是写起来多两个字符
df[, "name"]   # 也是同一列,但返回的是 data.frame(除非加 drop = TRUE)

对纯 list 同样有效

r 复制代码
lst <- list(a = 1:3, b = letters[1:5])
lst$b          # 返回 "a" "b" "c" "d" "e"

不能用在矩阵、向量、环境等其他类型上

r 复制代码
m <- matrix(1:6, 2, 3)
m$V1           # 报错:$ 无效,矩阵不是列表
1:5$x          # 报错:原子向量不能用 $

一句话总结
$ 就是 "列表/数据框专用点号" :
df$colName 等价于 df[["colName"]],用来快速提取某一列(或列表成分)的向量。

相关推荐
h39744 小时前
DirectShow过滤器开发-视频源过滤器
c++·windows·音视频·directshow
夏幻灵6 小时前
JavaScript this 面试:五种绑定规则、优先级与常见面试陷阱
开发语言·javascript·面试
程序猿编码6 小时前
榨干 RTX5090 算力!Qwen3 专用单卡推理引擎,手写C++/CUDA 算子实现 MTP 推测解码
开发语言·c++·大模型推理·qwen3·多模态推理
bkspiderx7 小时前
Qt 插件机制:动态扩展应用功能的核心框架
开发语言·qt·元数据·qt 插件·qpluginloader
程序员老陆8 小时前
深入理解 C++ thread_local:线程私有存储的正确打开方式
开发语言·c++·程序设计
沐晓时光8 小时前
C语言入门,深入理解指针(3)
c语言·开发语言
码云数智-园园8 小时前
unique_ptr 还是 shared_ptr?C++ 智能指针选型与内存泄漏实战分析
java·开发语言
禾小西9 小时前
07丨Redis 哨兵机制:主库故障后,如何恢复服务?
java·开发语言·redis
我不是阵雨9 小时前
JDK 21虚拟线程Pinning陷阱:一文拔钉解困
java·开发语言
徐小黑ACG9 小时前
Golang 基础05 结构体struct
开发语言·算法·golang