我有一个如下所示的数据集:
ID countries income
1 x HIC
1 x HIC
1 y LIC
1 z UIC
2 a HIC
3 y LIC
3 z UIC我希望筛选以保留每个ID中唯一的收入行,以便只删除每个ID中的重复收入值,而不删除所有ID之间的重复收入值;因此数据如下所示:
ID countries income
1 x HIC
1 y LIC
1 z UIC
2 a HIC
3 y LIC
3 z UIC我现在的命令是这个,但是这删除了收入值的所有重复。我能做些什么来使它只有ID才是唯一的呢?
dat2 <- dat1 %>% distinct(income, .keep_all = TRUE)第二个问题,如果我想进一步合并这些行,使上面的数据看起来像这样,我如何通过ID压缩国家和收入行?也可以创建一个新的变量来实现这一点吗?
ID countries income
1 x,y,z HIC,LIC, UIC
2 a HIC
3 y,z LIC,UIC提前谢谢你!
发布于 2022-07-26 07:21:17
你可以试试
library(dplyr)
df %>%
group_by(ID) %>%
distinct(income, .keep_all = TRUE) %>%
summarise(across(everything(), ~paste0(.x, collapse = ",")))
ID countries income
<int> <chr> <chr>
1 1 x,y,z HIC,LIC,UIC
2 2 a HIC
3 3 y,z LIC,UIC https://stackoverflow.com/questions/73119173
复制相似问题