我试图在函数内部使用 summarise_all()来将泛型函数应用于数据框的所有列。它看起来像这样:
my_func <- function(df, FUN = sum, ...) {
< ...more stuff here ....>
# aggregate on desired level across all columns
df %>% group_by(level) %>% summarise_all(funs(FUN(., ...)))
}
但问题是, my_func 总是使用默认的 sum 函数,即使我将其称为:
my_func(my.data.frame, FUN="mean") # or my_func(my.data.frame, FUN=mean)
为 ...参数传递额外的参数也不起作用。
我做错了什么?
答案 0 :(得分:2)
一种选择是使用funs_
代替funs
。
该功能看起来像
my_func <- function(df, FUN = "sum", ...) {
df %>%
group_by(level) %>%
summarise_all(funs_(FUN, args = ...))
}
要使用args
,需要将...
参数放入列表中。
my_func(datasetname, FUN="mean", list(na.rm = TRUE))