gpt4 book ai didi

r - dplyr summarise_each() 对同一组中的不同列子集使用多个函数

转载 作者:行者123 更新时间:2023-12-02 05:10:23 27 4
gpt4 key购买 nike

我想使用 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 Source: local data frame [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 Source: local data frame [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) Joining by: "Species" Source: local data frame [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

关于r - dplyr summarise_each() 对同一组中的不同列子集使用多个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34822332/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com