R语言如何使用原生管道符|>提取数据框的多个变量?
错误原因
$ 运算符本身仅支持提取单个列,传入多个列名不符合它的语法规则,因此无法用这种方式实现多列提取。你之前尝试用[没成功,大概率是没注意索引的逗号规则,或是没有正确把运算符包裹起来。
正确实现方案
方案1:使用基础[索引运算符(无额外依赖,最通用)
[ 是数据框索引的标准运算符,原生管道调用时需要用反引号包裹运算符,同时注意行、列筛选的逗号规则:逗号前为行筛选条件,留空代表保留全部行,逗号后指定要提取的列即可。
# 按列名提取多列 df_1 |> (`[`)(, c("x.1", "x.2", "x.3")) # 按列索引提取多列(示例提取前3列) df_1 |> (`[`)(, 1:3)
方案2:使用subset函数(可读性更高)
base R自带的subset函数不需要处理复杂的运算符包裹规则,直接通过select参数指定要提取的列即可,代码可读性更强:
df_1 |> subset(select = c(x.1, x.2, x.3))
如果需要返回列表格式的多列结果,可以搭配as.list()使用:
df_1 |> (`[`)(, c("x.1", "x.2", "x.3")) |> as.list()
内容的提问来源于stack exchange,提问作者neves
相关产品推荐
相关产品推荐

