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

时间:2017-09-15 13:06:37

标签: r dplyr

这是一个玩具示例:

df <- data.frame(user=c('a','b'), rating=c(1,2), age=c(17,33))

rating <- function(df, var){x <- df %>% summarise(sum(var))}

rating(df,age)

当我执行该函数时,出现以下错误:

  

summarise_impl(.data,dots)中的错误:找不到对象'age'

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

1 个答案:

答案 0 :(得分:5)

library(tidyverse)

df <- data.frame(user=c('a','b'), 
                 rating=c(1,2), 
                 age=c(17,33))

rating <- function(df, var){
  var <- enquo(var)
  df %>% summarise(sum(!!var))
  }

x <- rating(df,age)