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