我有两个在两个不同场合生成的数据帧,但我怀疑它们是相等的。两者具有相同的行数和列数,从视觉上看它们似乎是相同的,除了行的排序方式不同。
两者都没有可以重新排序的 ID 列,我能做的最好的事情就是通过process_number
变量,这是我能得到的最接近唯一列的变量。然而,即使在重新排序之后identical
yields FALSE
and all.equal
给了我这个(总结):
[1] "Component 2: 32 string mismatches"
[16] "Component 18: 'is.NA' value mismatch: 183357 in current 183357 in target"
[23] "Component 27: Mean relative difference: 0.4688722"
[24] "Component 28: Mean relative difference: 0.0004968944"
[26] "Component 30: Attributes: < Component 2: 365 string mismatches >"
[28] "Component 31: 'current' is not a factor"
对于这些情况,我发现的最佳选择是使用“compare”包:
library(compare)
compare(df1, df2, allowAll = TRUE)
The allowAll
argument 尝试不同的转换(例如,对行重新排序、对列重新排序、将列类型从因子更改为字符等),然后给出不同转换后两个输入是否相同的摘要。如果应用转换后它们相同,它会告诉您需要进行哪些转换才能使它们相同。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)