首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何删除只有一个单一变量级别而从未发生在第二个变量级别上的R中的所有参与者?

如何删除只有一个单一变量级别而从未发生在第二个变量级别上的R中的所有参与者?
EN

Stack Overflow用户
提问于 2016-03-31 15:58:33
回答 1查看 67关注 0票数 0

我正在用R分析一个在线社区数据集,我非常感谢你的帮助,因为我被困在一个问题上。以下是一个大纲:

数据集:每个用户的用户名都可用。每一行代表一个在线社区中一个用户的活动。示例a:第1行显示,用户“蓝色”是在线社区x的“成员”,到目前为止,他已经为该社区贡献了一篇文章。示例b:第5行显示,用户'blue‘也是在线社区y的所有者,到目前为止,他已经为该社区贡献了2个帖子。看下面!

问题:在任何在线社区中,我想从仅以成员或用户身份活动的数据集中删除所有用户。我也想删除他们,如果他们是活跃的成员在几个在线社区。换句话说,我想删除用户的“橙色”、“紫色”、“黑色”和“白色”。重要事项:数据集包含> 1Mio。一排排。我正在寻找一种考虑到这一点的方法:)谢谢。

代码语言:javascript
复制
username role   # of posts

blue    member  1
blue    member  0
red     owner   6
red     owner   1
blue    owner   2
red     member  1
blue    owner   3
blue    member  2
blue    owner   1
blue    owner   0
red     member  8
green   owner   1
red     owner   2
red     member  3
green   member  4
yellow  owner   5
green   member  3
green   owner   4
yellow  owner   5
yellow  member  6
yellow  owner   8

*orange owner   1
orange  owner   2
purple  member  3
purple  member  4
black   owner   4
white   member  4*
EN

回答 1

Stack Overflow用户

发布于 2016-03-31 16:24:34

我认为我的评论中的说法是正确的。

使用data.table包,因为我有一个狂热的心情。请注意,转换到数据表将破坏以后的任何数据帧语法,因此如果您试图将其插入到其他代码中,则需要在以后使用setDF(users2)将其转换回来。

代码语言:javascript
复制
library('data.table')
setDT(users)
users_to_remove <- users[, .N, .(username, role)][, .N, username][N == 1, username]
users2 <- users[!(username %in% users_to_remove)]
print(setdiff(users$username, users2$username))

第三行可能有点难理解,因为它将3个操作链接在一起。

  1. 计算每个用户名/角色组合的观察次数。
  2. 放弃每个组合拥有的观察数,并计算每个用户名所具有的角色数。
  3. 限制为只有一个角色的用户名,并返回用户名的向量。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36338281

复制
相关文章

相似问题

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