如何将列名作为参数传递给 dplyr 中的函数?
Posted
技术标签:
【中文标题】如何将列名作为参数传递给 dplyr 中的函数?【英文标题】:How to pass column name as parameter to function in dplyr? 【发布时间】:2015-03-29 03:51:15 【问题描述】:我想和here 做同样的事情,但要使用 dplyr 和另外一列。
我想通过字符串变量选择一列,但最重要的是,我还想正常选择第二列。 我需要这个,因为我有一个函数可以通过给定的参数选择几列。
我以如下代码为例:
library(dplyr)
data(cars)
x <- "speed"
cars %>% select_(x, dist)
【问题讨论】:
你不能像cars %>% select_(x, "dist")
一样引用dist
吗?
【参考方案1】:
我知道我有点晚了,但我想我会为其他人添加它。
x <- "speed"
cars %>% select(one_of(x),dist) %>% head()
## speed dist
## 1 4 2
## 2 4 10
## 3 7 4
## 4 7 22
## 5 8 16
## 6 9 10
或者这也可以
cars %>% select(one_of(c(x,'dist')))
【讨论】:
【参考方案2】:您可以将quote()
用于dist
列
x <- "speed"
cars %>% select_(x, quote(dist)) %>% head
# speed dist
# 1 4 2
# 2 4 10
# 3 7 4
# 4 7 22
# 5 8 16
# 6 9 10
【讨论】:
以上是关于如何将列名作为参数传递给 dplyr 中的函数?的主要内容,如果未能解决你的问题,请参考以下文章
如何将文件路径作为 bash 脚本中的参数传递给函数? [复制]