保持观察仅在R中的两个数据集中重叠id?

时间:2015-04-14 19:42:05

标签: r sorting

我有两个数据集。假设数据A和数据B以及两个数据集具有id变量。 在两个数据集中,我想删除不重叠的id。换句话说,我想保留两个数据集中存在的ID。

1 个答案:

答案 0 :(得分:0)

这取决于您是要为每个数据集单独执行此操作,还是要将两个数据集合并为一个数据集(或数据框)。您可以使用dplyr尝试此操作。

library(dplyr)
df1 <- data.frame(id = c("A", "B", "C"),
                  var1 = c(1,2,3))
df2 <- data.frame(id = c("A", "C", "E"),
                  var2 = c(4,5,6))

# matching ids in data frame 1
dplyr::semi_join(df1, df2, "id")

>   id var1
> 1  A    1
> 2  C    3

# matching ids in data frame 2
dplyr::semi_join(df2, df1, "id")

>   id var1
> 1  A    4
> 2  C    5

# merge column from both data frames
# matching the id
dplyr::inner_join(df1, df2, "id")

>   id var1 var2
> 1  A    1    4
> 2  C    3    5