使用DataFrame列名作为R函数参数

时间:2017-07-23 03:43:58

标签: r function dataframe arguments

fun <- function(dataframe, var){
    print(data$var)
}

dataset <- data.frame(a = 1:6, b = 12:17, c = 3:8)

fun(dataset, a)

基本上,我想做类似这样的事情,我可以将其中一个列名称传递给一个函数,并且稍后可以使用它来调用该列。

我知道group_by函数以某种方式处理它,但是当我进入调试模式并试图解决它时,我无法做出我想要的实际操作的正面或反面。

1 个答案:

答案 0 :(得分:-1)

要执行此操作dplyr - 就像,您需要使用tidyevaluation。首先,您需要enquo() var,然后使用var引用!!

library(dplyr)

fun <- function(dataframe, var){
  var <- enquo(var)
  select(dataframe, !!var)
}

dataset <- data.frame(a = 1:6, b = 12:17, c = 3:8)

fun(dataset, a)

你可以找到一个好的tidyeval tuto here

最好,

科林