如果类似的问题已经被回答了,我很抱歉,但是我似乎找不到任何帮助我的帖子。我想定义两个独立的干预小组(与我之前问过here的这个问题有关)。我有一个不平衡的面板数据集,涉及超过10万个ID。一行=特定ID的一个月数据。
干预1:如果ID至少满足条件一次(Scheme1 ==1),并且不能满足其他条件(Scheme2 ==0),我希望包含ID的所有行。
干预2:如果ID至少在数据中满足两种条件,我希望包括ID的所有行(Scheme1、==1和Scheme2 ==1)。
我使用了这样的代码来获得ControlGroup:
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未进入方案的行。
发布于 2019-03-17 11:04:18
干预措施1:
Inter1 <- DF %>% filter(ID %in% (DF %>% filter(Scheme1==1 & Scheme2==0))$ID & !(ID %in% (DF %>% filter(Scheme2==1))$ID))干预2:
Inter2 <- DF %>% filter(ID %in% (DF %>% filter(Scheme1==1 & Scheme2==1))$ID)https://stackoverflow.com/questions/55209119
复制相似问题