Mam 2 ramki danych.
Chciałbym podgrupować Df1, aby zwrócić nową ramkę danych, w której ID i miesiąc są zgodne z ramki danych wyszukiwania: lookupDf.
Te pasujące wiersze spowodowałyby Df3.
Na przykład:
Df1
id month x
A 20 10
B 20 11
C 20 12
D 20 13
E 20 14
A 21 15
B 21 16
C 21 17
D 21 18
E 21 19
lookupDf
id month
A 20
B 20
C 20
E 20
C 21
D 21
Df3 byłby podzbiorem Df1
Df3
id month x
A 20 10
B 20 11
C 20 12
E 20 14
C 21 17
D 21 18
Odpowiedzi:
2 dla odpowiedzi № 1Za pomocą tidyverse
narzędzia, spójrz na różne join
działa w dplyr
.
Tutaj chcesz zachować wiersze z df1 pasujące do lookupDf, więc chcesz użyć semi_join
, który nie powiela wierszy w df1, jeśli pasują do więcej niż jednego wiersza w lookupDf ,.
Df3 <- dplyr::semi_join(Df1, lookupDf)