这个问题与类似的帖子有关。 Function writing passing column reference to group_by
但是,我想将几个输入传递给使用group_by_()和summarise_()的函数。
这是我的功能:
foo <- function(data,column,x1,x2){
data %>%
group_by_(.dots = column) %>%
summarise_(.dots= c(~mean(x1), ~mean(x2)))
}
但是,当我跑步时
foo(mtcars,"cyl", "disp", "hp")
我收到以下错误。
Error in UseMethod("as.lazy_dots") :
no applicable method for 'as.lazy_dots' applied to an object of class "c('double', 'numeric')"
In addition: Warning message:
In mean.default(x1) : argument is not numeric or logical: returning NA
谁能告诉我我在哪里做错了?
最佳答案
好吧,好像您只是再次想要summarise_each
,它确实具有标准的评估替代品summarise_each_
。您可以为app编写>
并用
foo <- function(data, column, x1, x2){
data %>%
group_by_(.dots = column) %>%
summarise_each_(funs(mean), c(x1,x2))
}