在不同的数据框中提取具有相同值的行
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"))
我有下面的 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"))