首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >按ID筛选唯一行

按ID筛选唯一行
EN

Stack Overflow用户
提问于 2022-07-26 07:18:31
回答 1查看 87关注 0票数 0

我有一个如下所示的数据集:

代码语言:javascript
复制
 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之间的重复收入值;因此数据如下所示:

代码语言:javascript
复制
    ID           countries        income
    1                x                 HIC
    1                y                 LIC
    1                z                 UIC
    2                a                 HIC
    3                y                 LIC
    3                z                 UIC

我现在的命令是这个,但是这删除了收入值的所有重复。我能做些什么来使它只有ID才是唯一的呢?

代码语言:javascript
复制
dat2 <- dat1 %>% distinct(income, .keep_all = TRUE)

第二个问题,如果我想进一步合并这些行,使上面的数据看起来像这样,我如何通过ID压缩国家和收入行?也可以创建一个新的变量来实现这一点吗?

代码语言:javascript
复制
    ID           countries        income
    1                x,y,z         HIC,LIC, UIC
    2                a             HIC
    3                y,z           LIC,UIC

提前谢谢你!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-07-26 07:21:17

你可以试试

代码语言:javascript
复制
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    
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73119173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档