我想summarise_each()用来将多个函数应用于分组数据集.但是,我不想将每个函数应用于所有列,而是将每个函数应用于特定的子集.我意识到我可以通过指定每个列来实现这一点summarise(),但我有很多变量.
是否有替代方案1)使用summarise_each()然后删除不需要的列或2)保存group_by()结果,执行多个单独的summarise_each()操作并组合结果?
如果不清楚,请告诉我,我可以尝试用一些示例代码来说明.
小智 1
我建议如下:在这里,我想将 min 函数应用于一个变量,将 max 函数应用于其他变量。然后我只需将它们与分组变量合并。
> by_species <- iris %>% group_by(Species)
Run Code Online (Sandbox Code Playgroud)
从我想要应用 min 函数的变量开始:
min_var <- by_species %>% summarise_each(funs(min), Petal.Width) min_var 来源:本地数据框 [3 x 2]
Species Petal.Width
(fctr) (dbl)
1 setosa 0.1
2 versicolor 1.0
3 virginica 1.4
Run Code Online (Sandbox Code Playgroud)
然后是我要应用 max 函数的变量:
max_var <- by_species %>% summarise_each(funs(max), Sepal.Width) max_var 来源:本地数据框 [3 x 2]
Species Sepal.Width
(fctr) (dbl)
1 setosa 4.4
2 versicolor 3.4
3 virginica 3.8
Run Code Online (Sandbox Code Playgroud)
现在,我们将上面两个合并:
left_join(min_var,max_var) 连接方式:“物种” 来源:本地数据框 [3 x 3]
Species Petal.Width Sepal.Width
(fctr) (dbl) (dbl)
1 setosa 0.1 4.4
2 versicolor 1.0 3.4
3 virginica 1.4 3.8
Run Code Online (Sandbox Code Playgroud)