首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除R中只有一个人的组

删除R中只有一个人的组
EN

Stack Overflow用户
提问于 2021-10-12 12:58:10
回答 1查看 29关注 0票数 0

考虑下面的数据集。数据按每组一人或两人进行分组。但是,一个人可能有几个条目。

代码语言:javascript
复制
df1<-data.frame(group,individualID,X)
> df1
   group individualID X     
1      1            1  0 
2      1            1  1 
3      1            2  1 
4      1            2  1 
5      2            3  1 
6      2            3  1 
7      3            5  1 
8      3            5  1 
9      3            6  1 
10     3            6  1 
11     4            7  0 
12     4            7  1 

如上所述,组1和组3有2个个体,而组2和组4各有1个个体。

代码语言:javascript
复制
> aggregate(data = df1,  individualID ~ group, function(x) length(unique(x)))
group individualID 
1 1    2
2 2    1
3 3    2
4 4    1

如何将数据子集设置为仅包含具有1个以上个体的组。例如,省略具有1个个体的组。

我应该只得到组1和组3。

EN

回答 1

Stack Overflow用户

发布于 2021-10-12 13:13:03

您可以创建一个查找表来标识具有多个唯一individualID的组(类似于您对aggregate所做的操作),然后根据该表过滤df1

代码语言:javascript
复制
library(dplyr)

lookup <- df1 %>% 
          group_by(group) %>% 
          summarise(count = n_distinct(individualID)) %>%
          filter(count > 1)

df1 %>% filter(group %in% unique(lookup$group))
  group individualID X
1     1            1 0
2     1            1 1
3     1            2 1
4     1            2 1
5     3            5 1
6     3            5 1
7     3            6 1
8     3            6 1

或者,正如@MrGumble上面建议的那样,您也可以在创建lookup之后合并df1

代码语言:javascript
复制
merge(df1, lookup)
  group individualID X count
1     1            1 0     2
2     1            1 1     2
3     1            2 1     2
4     1            2 1     2
5     3            6 1     2
6     3            6 1     2
7     3            5 1     2
8     3            5 1     2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69540985

复制
相关文章

相似问题

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