如果已经回答了类似的问题,我很抱歉,但我似乎找不到任何帮助我的帖子。我希望定义两个独立的干预小组(与前一个问题相关,我问过here)。我有一个不平衡的面板数据集,折衷超过100,000个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
但是,如果我尝试应用类似的代码来获取不同的干预组,我只获取ID的行,其中Scheme1 == 1和Scheme2 == 0(干预1)或Scheme == 1和Scheme2 == 1(干预2 )。理想情况下,我希望每个干预组都是进入方案1的所有ID行,或两个方案,包括ID尚未进入方案的行。
干预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)