我相信这已经在这里得到了解答,但我似乎无法找到它 .
我正在使用dplyr,并尝试使用mutate将数据框中的所有列传递给自定义函数,但是通过group_by限制输入行 . 我猜"."算子不是要走的路,但还有什么可能推荐的呢?
df <- data.frame(x = rep(1:4,each = 5),y= rnorm(20))
myfunc <- function(df) {
print(paste(nrow(df),ncol(df)))
return(mean(df$x))
}
df %>% group_by(x) %>% mutate(y = myfunc(.))
实际输出低于,表示它将整个数据帧传递给函数4次 .
[1] "20 2"
[1] "20 2"
[1] "20 2"
[1] "20 2"
我希望输出如下,即将数据帧的每个子集传递给自定义函数:
[1] "5 2"
[1] "5 2"
[1] "5 2"
[1] "5 2"
如何方便地将所有列传递给我的函数但仍然可以使group_by工作?
谢谢