gpt4 book ai didi

r - 使用 dplyr 添加另一个分组

转载 作者:行者123 更新时间:2023-12-04 05:47:50 26 4
gpt4 key购买 nike

我想对一个数据框进行两次变异,按两组彼此相交的列分组。 IE。:

df <- df %>% group_by(a, b) %>% mutate(x = sum(d))
df <- df %>% group_by(a, b, c) %>% mutate(y = sum(e))

有没有更快/更优雅的方法来做到这一点?我希望能够做这样的事情:
df <- df %>%
group_by(a, b) %>%
mutate(x = sum(d)) %>%
group_by(c) %>%
mutate(y = sum(e))

或者也许用第一个 group_by 保存一个变量应用,然后使用它两次。

最佳答案

我们使用 add=TRUE在第二个 group_by按 3 个变量分组,添加 c在 OP 的例子中——

 df %>%
group_by(a, b) %>%
mutate(x = sum(d)) %>%
group_by(c, add=TRUE) %>%
mutate(y = sum(e))

根据 ?group_by 的文档

By default, when add = FALSE, group_by will override existing groups. To instead add to the existing groups, use add = TRUE



这可以在一个 group_by 中完成调用,但仅限于非 dplyrish 函数:
 df %>%
group_by(a, b) %>%
mutate(x = sum(d), y = ave(e, c, sum))

关于r - 使用 dplyr 添加另一个分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33421531/

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