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

时间:2015-01-29 19:21:48

标签: r parameter-passing dplyr quote named

我想和here做同样的事情,但是使用dplyr和另外一列。

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

我将以下代码作为示例:

library(dplyr)
data(cars)

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

2 个答案:

答案 0 :(得分:9)

您可以将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

答案 1 :(得分:2)

我知道我这个晚了一点,但我想我会把它添加到其他人那里。

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