首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过使用在另一个数据集中标识的in (在R中),删除一个数据集中包含某些in的行

通过使用在另一个数据集中标识的in (在R中),删除一个数据集中包含某些in的行
EN

Stack Overflow用户
提问于 2022-08-12 19:53:20
回答 1查看 35关注 0票数 0

我有一个聊天室的数据集,里面有发送消息的人,还有一个更大的数据集,里面有这些人和其他人,除了去聊天室。

我需要识别那些单独在聊天室(聊天室数据集)中的人(聊天室数据集)-i.e,聊天室里只有一个人留言的人,并将他们从更大的数据集中删除。

因此,从下面的数据集中,我需要识别Persons、J、M,然后从更大的数据集中删除这些人(其中还包含Persons到Z和许多其他非聊天数据)。

代码语言:javascript
运行
复制
data.table(Chatroom = c(1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8), Person = c("A","A", "B","C","D","E","F","G","H","I","J","J","J","K","L","M", "M"), Message = c("Hi", "You there?", "Hello", "Hi", "Hey", "Howdy", "Hi", "Hey", "Greetings", "Hi", "Hi", "Hello?", "Anyone there?", "Hey", "Hi", "Hello?", "Helllooooooo?"))

    Chatroom Person       Message
 1:        1      A            Hi
 2:        1      A    You there?
 3:        2      B         Hello
 4:        2      C            Hi
 5:        3      D           Hey
 6:        3      E         Howdy
 7:        4      F            Hi
 8:        4      G           Hey
 9:        5      H     Greetings
10:        5      I            Hi
11:        6      J            Hi
12:        6      J        Hello?
13:        6      J Anyone there?
14:        7      K           Hey
15:        7      L            Hi
16:        8      M        Hello?
17:        8      M Helllooooooo?

什么R函数能帮我做到这一点?

我知道如何手动创建列表,但不知道如何根据我前面提到的标准从现有数据创建列表。我使用了变体、胶水、排列和drop_na等函数,但我很难想象如何将这些函数组合在一起,以便使用聊天室子集可重复地过滤更大的数据集。

建议?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-12 20:01:46

您可以创建这样的小型datatable to_remove

代码语言:javascript
运行
复制
to_remove = df[,ct:=uniqueN(Person), Chatroom][ct==1, .(Person=unique(Person))]

然后反连接到您的另一个data.table (比如df_big),如下所示:

代码语言:javascript
运行
复制
df_big[!to_remove, on="Person"]

我使用的是data.table,因为这就是您提供df的方式,但是如果您想要使用dplyr的方法,可以这样做:

代码语言:javascript
运行
复制
anti_join(
  df_big,
  df %>% group_by(Chatroom) %>% distinct(Person) %>% filter(n()==1),
  by = "Person"
)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73339165

复制
相关文章

相似问题

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