/ / R - podzbiór ramki danych na podstawie ramki danych wyszukiwania - r, ramki danych, podzbioru, wyszukiwania

R - Podzbiór frameworka danych oparty na przeszukiwanej ramce danych - r, ramce danych, podzbiorze, odnośniku

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 № 1

Za 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)