首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果ID在R中的面板数据中满足一次条件,则包括ID的所有行

如果ID在R中的面板数据中满足一次条件,则包括ID的所有行
EN

Stack Overflow用户
提问于 2019-03-17 10:58:49
回答 1查看 64关注 0票数 1

如果类似的问题已经被回答了,我很抱歉,但是我似乎找不到任何帮助我的帖子。我想定义两个独立的干预小组(与我之前问过here的这个问题有关)。我有一个不平衡的面板数据集,涉及超过10万个ID。一行=特定ID的一个月数据。

干预1:如果ID至少满足条件一次(Scheme1 ==1),并且不能满足其他条件(Scheme2 ==0),我希望包含ID的所有行。

干预2:如果ID至少在数据中满足两种条件,我希望包括ID的所有行(Scheme1、==1和Scheme2 ==1)。

我使用了这样的代码来获得ControlGroup:

代码语言:javascript
复制
DF %>% group_by(ID) %>% mutate(totalSchemes=sum(Scheme1+Scheme2)) %>% filter(totalSchemes==0) -> ControlGroup 

但是,如果我尝试应用类似的代码来获取不同的干预组,我只会得到if的行,其中Scheme1 ==1和Scheme2 ==0 (干预1)或Scheme==1和Scheme2 ==1 (干预2)。理想情况下,对于每个干预组,我想要的是输入Scheme 1的ID的所有行,或者这两个方案,包括ID未进入方案的行。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-17 11:04:18

干预措施1:

代码语言:javascript
复制
Inter1 <- DF %>% filter(ID %in% (DF %>% filter(Scheme1==1 & Scheme2==0))$ID & !(ID %in% (DF %>% filter(Scheme2==1))$ID))

干预2:

代码语言:javascript
复制
Inter2 <- DF %>% filter(ID %in% (DF %>% filter(Scheme1==1 & Scheme2==1))$ID)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55209119

复制
相关文章

相似问题

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