Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查r中2个数据帧的元素级别差异?_R - Fatal编程技术网

如何检查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