如何将列名作为参数传递给 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 %&gt;% 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 脚本中的参数传递给函数? [复制]

如何将函数与表连接起来,并将表列作为参数传递给雪花中的函数

如何将指针作为参数传递给 COM 对象中的函数?

如何将从表单提交中检索到的参数作为参数传递给 django 中的函数

如何将 Set/HashSet 作为参数传递给 Spark 中的 UDF?