R group_by%>% full_join теряет записи NA - PullRequest
1 голос
/ 05 марта 2019

Рассмотрим эти два фрейма данных:

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 состоит в том, что он группируется по переменной (переменным) и продолжается со всеми моимиследующие мутации, картирование и т. д. в каждой группе.Это должно вести себя таким образом?

1 Ответ

3 голосов
/ 05 марта 2019

После прочтения документации я наконец нашел раздел, в котором говорится, что группы игнорируются для присоединения. ? Full_join

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...