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

问题描述 投票:0回答:1

我需要根据两列中的值作为键来比较几对庞大的数据集。 每对数据确实是数据的旧版本和更新版本。所以有些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 compare comparison
1个回答
0
投票

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

我觉得你需要把两个ID包起来

c(...)
.

diffdf(df1_subset, df2_subset, keys = c("ID1", "ID2"))
© www.soinside.com 2019 - 2024. All rights reserved.