C开发者学习R:咨询ls()查看数据框列及列访问方法
访问R数据框列的几种常用方法
嘿,作为从C语言转过来学R的开发者,刚开始接触数据框这种结构确实会有点不适应——毕竟和C里的数组、结构体逻辑不太一样。我来给你梳理几种访问mpg数据框列的实用方法,都是日常写代码时高频用到的:
1. 美元符号$访问(最直观)
这是R里访问数据框列最常用的方式,直接用数据框名$列名就能拿到对应列的向量数据,比如你要访问cty列:
# 获取cty列的所有值 mpg$cty
这种方法的好处是写起来简洁,而且R的编辑器一般会有自动补全,输入mpg$之后就能看到所有列名的提示,很方便。
2. 方括号[]访问(灵活度高)
方括号有几种不同的写法,对应不同的返回结果:
- 单括号
[列名/索引]:返回的还是一个数据框(哪怕只取一列),比如:# 返回只包含cty列的数据框 mpg["cty"] # 或者按列的索引来取(ls(mpg)里第一个列是class,索引是1) mpg[1] - 双括号
[[列名/索引]]:返回的是该列对应的向量,和$的效果类似:# 返回cty列的向量 mpg[["cty"]] # 按索引取的话 mpg[[3]] # 对应ls(mpg)里的第三列cyl - 二维索引写法
[行,列]:如果需要同时指定行和列,用这种写法,比如取前5行的hwy列:mpg[1:5, "hwy"]
3. 用dplyr包的pull()函数(适合tidyverse工作流)
如果你后续会接触tidyverse系列工具(毕竟你已经在用ggplot2了),dplyr里的pull()函数可以很方便地提取列,尤其是在管道操作里:
library(dplyr) # 提取cty列的向量 mpg %>% pull(cty)
你用ls(mpg)列出的所有列名,都可以用上面的任意一种方法来访问。刚开始可以先从$和双括号[[ ]]练起,熟悉之后再根据场景选择更合适的方式~
内容的提问来源于stack exchange,提问作者John C. Dough
相关产品推荐
相关产品推荐

