如何在 R 中使用 diffdf 包比较两个数据集?

How to compare two data sets using the diffdf package in R?

提问人:Rara 提问时间:3/2/2023 更新时间:3/2/2023 访问量:189

问:

我需要根据两列中的值作为键来比较一些巨大的数据集对。 每对数据确实是旧版本的数据和更新版本。因此,有些 ID 不匹配。我使用 semi_join 根据两个数据集中存在的 ID 对数据进行子集化(我不确定是否有必要!

df1_subset<- semi_join(df1, df2, by = c('ID1', 'ID2'))
df2_subset<- semi_join(df2, df1, by = c('ID1', 'ID2'))

我尝试使用diffdf包。但是我收到以下错误。

Error in diffdf(df1_subset, df2_subset, keys = "ID1", "ID2") :     
BY variables in BASE do not result in unique observations

谁能帮我找出问题所在?由于数据非常大,我不确定如何在此处提供示例。如果您有任何其他解决方案,我将不胜感激。

r 比较

评论


答:

0赞 r2evans 3/2/2023 #1

keys = "ID1", "ID2"将值分配给名为 的参数,并将未命名的参数分配给第三个未命名的参数(前两个是您的两个子集框架),该参数恰好是(应该是合乎逻辑的)。"ID1"keys="ID2"suppress_warnings=

我认为您需要将两个 ID 包装在 .c(...)

diffdf(df1_subset, df2_subset, keys = c("ID1", "ID2"))