如何将列名作为参数传递给 dplyr 中的函数?

How to pass column name as parameter to function in dplyr?

我想做与 here 相同的事情,但使用 dplyr 和多一列。

我想通过字符串变量 select 添加一列,但最重要的是我还想 select 通常是第二列。 我需要这个,因为我有一个函数,它 select 由给定参数的几列。

我以下面的代码为例:

library(dplyr)
data(cars)

x <- "speed"
cars %>% select_(x, dist)

您可以对 dist 列使用 quote()

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

我知道我来晚了一点,但我想我会为其他人添加它。

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')))