首页 > 解决方案 > 显示在合并中丢失的观察

问题描述

假设我想通过两列的键合并两个不同的数据框。

Dataframe One 有 70000 个 obs 的 10 个变量。数据框二有 4500 个 obs 的 5 个变量。

现在,我使用此代码检查了如何从我的新数据框中留下的观察结果。所以我意识到我的数据框 2 中的列现在只有 10 个变量的 4490 obs。没关系。我的问题是:有没有办法从我的数据框 2 中返回我在此过程中丢失的 5 个观察结果。名字就够了。

谢谢 :)

标签: dataframedatatable

解决方案


我想你可以用dplyr::anti_join这个。从其文档中:

从 x 中返回所有在 y 中没有匹配值的行,只保留 x 中的列。

您可能必须将数据框TWO作为x.

编辑:如评论中所述,其by参​​数的语法不同。

例子:

df1 <- data.frame(Name=c("a", "b", "c"),
                  Date1=c(1,2,3),
                  stringsAsFactors=FALSE)

df2 <- data.frame(Name=c("a", "d"),
                  Date2=c(1,2),
                  stringsAsFactors=FALSE)

> dplyr::anti_join(df2, df1, by=c("Name"="Name", "Date2"="Date1"))
  Name Date
1    d    2

推荐阅读