首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R比较按ID分组的两列

R比较按ID分组的两列
EN

Stack Overflow用户
提问于 2019-07-15 16:55:29
回答 1查看 356关注 0票数 1

我正在试着写一个R代码,比较两列按其Id分组。我的想法是筛选列,以便它只显示参加过初始会议和审查会议的ID。

这是我的数据框的方式:

代码语言:javascript
复制
ID  Initial Review  Type
P40 Yes             Meeting1
P40         Yes     Meeting2
P42 Yes             Meeting1
P42         No      Meeting2
P43 Yes             Meeting1
P43         Yes     Meeting2
P44 Yes             Meeting1
P44         No      Meeting2

这就是我想要实现的:

代码语言:javascript
复制
ID  Initial Review  Type
P40 Yes             Meeting1
P40         Yes     Meeting2
P43 Yes             Meeting1
P43         Yes     Meeting2

我尝试过使用OR和and逻辑运算符。OR给了我错误的结果,而我得到的数据框是空的。

代码语言:javascript
复制
tt %>% group_by(ID) %>% filter(Initial == "Yes" & Review == "Yes")
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-15 17:05:59

代码语言:javascript
复制
df %>% group_by(ID) %>% filter(any(Initial == "Yes") && any(Review == "Yes"))

说明:Initial == "Yes"是一个包含两个元素的向量,每个元素对应一个给定ID的行。例如,对于P40,它是c(TRUE, FALSE)。除了这里的向量是c(FALSE, TRUE)之外,Review == "Yes"也是如此。现在,c(TRUE, FALSE) & c(FALSE, TRUE)c(FALSE, FALSE),这就是为什么你会得到一个空的df。

在我的解决方案中,你会得到一个单一的值。对于P40,any(Initial == "Yes")TRUEany(Review == "Yes")也是真的,TRUE && TRUETRUE。现在因为我们需要一个长度为2的向量,R自动扩展向量,用TRUE填充它,这就是为什么你得到P40的两行。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57036307

复制
相关文章

相似问题

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