请考虑以下两个数据帧:
t1<-data.frame(Time=1:3,Cat=rep("A",3),SomeValue=rep("t1",3))
t2<-data.frame(Time=c(1,2,3,1,3),Cat=rep("A",5),Id=c(1,1,1,2,2),SomeOtherValue=c(1,2,3,4,5))
在我的应用程序中,我需要进行完全连接并使用缺失的记录/值。对子集执行部分full_join(将var分组)是可行的,但是当我尝试未过滤的方法时,我丢失了丢失的值。
这将给我6条记录
t2 %>% group_by(Id) %>% filter(Id==2) %>% full_join(t1,by=c("Time","Cat"))
t2 %>% group_by(Id) %>% filter(Id==1) %>% full_join(t1,by=c("Time","Cat"))
这将给我5,Id == 2和Time == 2的缺失项(NA值)消失了:
t2 %>% group_by(Id) %>% full_join(t1,by=c("Time","Cat"))
我对group_by的理解是,它按变量进行分组,并在每个组上继续进行以下所有我的突变,映射等操作。它应该以这种方式表现吗?
答案 0 :(得分:3)
正确阅读文档后,我终于找到了指出要加入的组被忽略的部分。 ?full_join