我想使用summarise_each()
将多个功能应用于分组数据集。但是,我不想将每个函数应用于所有列,而是将每个函数应用于特定的子集。我意识到我可以通过使用summarise()
指定每个列来实现此目的,但我有很多变量。
是否有替代解决方案1)使用summarise_each()
然后删除不需要的列或2)保存group_by()
结果,执行多个单独的summarise_each()
操作并合并结果?
如果不清楚,请告诉我,我可以尝试用一些示例代码来说明。
答案 0 :(得分:1)
我建议如下:这里我想将min函数应用于一个变量,将max函数应用于其他变量。然后我简单地将它们与分组变量合并。
> by_species <- iris %>% group_by(Species)
从我想要应用min函数的变量开始:
min_var&lt; - by_species%&gt;%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
然后我想要应用max函数的变量:
max_var&lt; - by_species%&gt;%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
现在,我们只合并以上两个:
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