如何检查r中2个数据帧的元素级别差异?
如何检查r中2个数据帧的元素级别差异?,r,R,>all.equal(df,df2) [1] “成分”q09:平均相对差异:1.82404“ 在df,df2中只有一列q09不同。下一个setp,我需要找到q09的哪一行不同,以及有什么不同。 我读过类似的问题,反加入只能找到行差异。 至于找出每个元素的差异,如何做?@lmo是正确的。为OP提供一个可复制的示例 df <- data.frame ( q09 = c(0,1,2,3,4,5,7) ) df2 <- data.frame ( q09 = c(0,1,2.5,3,
>all.equal(df,df2)
[1] “成分”q09:平均相对差异:1.82404“
在
df
,df2
中只有一列q09
不同。下一个setp,我需要找到q09
的哪一行不同,以及有什么不同。我读过类似的问题,
反加入
只能找到行差异。至于找出每个元素的差异,如何做?@lmo是正确的。为OP提供一个可复制的示例
df <- data.frame (
q09 = c(0,1,2,3,4,5,7)
)
df2 <- data.frame (
q09 = c(0,1,2.5,3,4,5,6)
)
那就给你
[1] 3 7
df$q09==df2$q09
(假设长度和顺序相同)。另外which(df$q09!=df2$q09)
查找不同的元素。或者用sum
来计算不同行的数量。对于无序的集合,可能是?setdiff
。假设我们不知道是否只有q09
列是不同的。如何检查元素级别差异?这相当广泛。但是,您可以逐个变量检查变量,如lappy(名称(df),函数(x)df[,x]==df2[,x])
或将其替换为all
或which
whichwhich(df[,x]==df2[,x])。如果df中不仅有q09
列,那么which(df!=df2)
将给出类似于“[1]的奇怪结果26497 26498 26499 26500 26501 26502 26503 26504 26505 `对。谢谢你指出这一点。这只是一个重复的例子,但总的来说你是对的。
[1] 3 7