我需要根据两列中的值作为键来比较几对庞大的数据集。 每对数据确实是数据的旧版本和更新版本。所以有些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
谁能帮我解决这个问题?由于数据非常大,我不确定如何在此处提供样本。如果您有任何其他解决方案,我将不胜感激。
keys = "ID1", "ID2"
正在将值 "ID1"
分配给名为 keys=
的参数,并将未命名参数 "ID2"
分配给第三个未命名参数(前两个是您的两个子集框架),这恰好是 suppress_warnings=
(这应该是合乎逻辑的)。
我觉得你需要把两个ID包起来
c(...)
.
diffdf(df1_subset, df2_subset, keys = c("ID1", "ID2"))