【问题标题】:How to pass column name as parameter to function in dplyr?如何将列名作为参数传递给 dplyr 中的函数?
【发布时间】:2015-03-29 03:51:15
【问题描述】:

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

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

我以如下代码为例:

library(dplyr)
data(cars)

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

【问题讨论】:

  • 你不能像cars %&gt;% select_(x, "dist")一样引用dist吗?

标签: r parameter-passing dplyr quote named


【解决方案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
    

    【讨论】:

      猜你喜欢
      • 2018-05-09
      • 2018-05-15
      • 2017-09-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-04-04
      • 1970-01-01
      • 2015-03-14
      相关资源
      最近更新 更多