我试图弄清楚如何使用 dplyr 通过几个函数来改变单列数据。我可以做每一列:
library(dplyr)
iris %>%
group_by(Species) %>%
mutate_all(funs(min, max))
Run Code Online (Sandbox Code Playgroud)
但我不知道如何选择一列。我可以想象这样的事情,尽管这显然不会运行:
iris %>%
group_by(Species) %>%
mutate(Sepal.Length, funs(min, max))
Run Code Online (Sandbox Code Playgroud)
我可以使用do()一个像这样的自定义函数来完成这个任务:
summary_func = function(x){
tibble(max_out = max(x),
min_out = min(x)
)
}
iris %>%
group_by(Species) %>%
do(summary_func(.$Sepal.Length))
Run Code Online (Sandbox Code Playgroud)
然而,这并没有真正做我想做的事情,因为它没有添加到现有的 tibble a la 中mutate。
有任何想法吗?
用 mutate_at
iris %>%
group_by(Species) %>%
mutate_at("Sepal.Length", funs(min, max))
Run Code Online (Sandbox Code Playgroud)
它需要一个character所以看报价