用多个变量分组,但将所有变量都保留在原始数据帧中



我得到了一个看起来像这样的数据帧:

ID1 STID MUNID YEAR SEX AGE POP

我使用group_by函数对STID、MUNID、YEAR、SEX和AGE进行分组,得到具有summarise(pop=sum(pop))的群体的总和。我不能在group_by中使用ID1,因为它会扰乱结果,但我想把它保留在最终的数据帧中。我的替代方案或选项是什么,这样我最终可以保留ID1?

一个选项是paste"ID1"的值,或者在summarise中创建一个list列,然后创建splitunnest

library(dplyr)
library(tidyr)
df1 %>%
group_by(STID, MUNID, YEAR, SEX, AGE) %>%
summarise(pop = sum(pop), ID1 = list(ID1), .groups = 'drop') %>%
unnest(ID1)

最新更新