簡體   English   中英

如何根據來自另一個數據框的多列值進行過濾?

[英]How to filter based on multiple column values from another data frame?

我有一個數據框,我試圖根據第一個數據框中的 2 個 ID 列進行過濾。 這是數據框1:

id_1 id_2
一個 1
2
C 3

和數據框2:

id_1 id_2
一個 1
2
一個 2

如果我做類似...

df2_filtered <- df2 %>%
filter(id_1 %in% df1$id_1 &
        id_2 %in% df1$id_2)

然后我取回了整個 df2,這不是我想要的。 即使“A”在 df1 的 id_1 中,“2”在 df1 的 id_2 中,也沒有任何行同時具有這兩者。 我該如何解決它,這樣我才能回來

id_1 id_2
一個 1
2

如果您沒有綁定到dplyr解決方案,那么data.table有一個不錯的選擇:

library(data.table)
df1 = as.data.table(df1)
df2 = as.data.table(df2)
fintersect(df1, df2)
   id_1 id_2
1:    A    1
2:    B    2

您可以使用dplyr::inner_join

inner_join(data1, data2)

# Joining, by = c("id_1", "id_2")
# id_1 id_2
# 1    A    1
# 2    B    2

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM