在 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"]],用来快速提取某一列(或列表成分)的向量。

相关推荐
lly20240630 分钟前
C 标准库 - `<stdio.h>`
开发语言
航Hang*31 分钟前
Windows Server 配置与管理——第3章:文件系统管理
运维·服务器·windows·vmware
沫璃染墨32 分钟前
C++ string 从入门到精通:构造、迭代器、容量接口全解析
c语言·开发语言·c++
jwn99933 分钟前
Laravel6.x核心特性全解析
开发语言·php·laravel
迷藏49435 分钟前
**发散创新:基于Rust实现的开源合规权限管理框架设计与实践**在现代软件架构中,**权限控制(RBAC)** 已成为保障
java·开发语言·python·rust·开源
功德+n1 小时前
Linux下安装与配置Docker完整详细步骤
linux·运维·服务器·开发语言·docker·centos
明日清晨1 小时前
python扫码登录dy
开发语言·python
我是唐青枫1 小时前
C#.NET gRPC 深入解析:Proto 定义、流式调用与服务间通信取舍
开发语言·c#·.net
JJay.1 小时前
Kotlin 高阶函数学习指南
android·开发语言·kotlin
bazhange1 小时前
python如何像matlab一样使用向量化替代for循环
开发语言·python·matlab