Рассмотрим эти два фрейма данных:
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где пропущена отсутствующая запись (значения NA) Id == 2 и Time == 2:
t2 %>% group_by(Id) %>% full_join(t1,by=c("Time","Cat"))
Мое понимание group_by состоит в том, что он группируется по переменной (переменным) и продолжается со всеми моимиследующие мутации, картирование и т. д. в каждой группе.Это должно вести себя таким образом?