在不同的数据框中提取具有相同值的行

Extract rows with same value across different dataframes

我有下面的 df files,其中包含很多行。

# A tibble: 2,320,079 x 2
   `files$File`                      `files$ID`
   <fct>                                 <int>
 1 oa_package/e6/58/176545.tar.gz     12929205
 2 oa_package/36/ba/176546.tar.gz     12929206
 3 oa_package/a9/0c/176547.tar.gz     12929207
 4 oa_package/46/44/176548.tar.gz     12938460
 5 oa_package/81/5e/193604.tar.gz     12975658
 6 oa_package/a5/8c/193605.tar.gz     12975657
 7 oa_package/f6/9e/193606.tar.gz           NA
 8 oa_package/93/a3/193607.tar.gz           NA
 9 oa_package/34/af/212687.tar.gz     14551903
10 oa_package/c5/d6/212688.tar.gz           NA
# … with 2,320,069 more rows

我还有一个 df ID_1,它包含与 'files$ID' 相同的数据类型,但只有 186 行。

# A tibble: 186 x 1
   ID      
   <int>   
 1 30237023
 2 12929205
 3 31475741
 4 32319557
 5 33842337
 6 28476099
 7 30103771
 8 12938460
 9 26417675
10 14551903
# … with 176 more rows

我的问题是:如何提取 files 中的所有行,其中 'files$ID' 的值等于 ID_1 df 中的 ID 行?

作为第一步,我尝试改变 files 以包含 ID 但这不起作用,因为观测值的数量必须相等。

files %>%
     mutate(row_3 = ID_1$ID)

结果是这样的:

  `files$File`                      `files$ID`
   <fct>                                 <int>
 1 oa_package/e6/58/176545.tar.gz     12929205
 4 oa_package/46/44/176548.tar.gz     12938460
 9 oa_package/34/af/212687.tar.gz     14551903

我们可能需要加入这里

library(dplyr)
files %>%
     inner_join(ID_1, by = c("files$ID" = "ID"))