将两个向量中的每一行相互比较

时间:2014-08-28 07:04:41

标签: r vector compare

我有一个巨大的数据库,我必须测试不一致性。其中一个测试是总结一些细分值并控制总数是否等于。总结和比较不是问题。我用了

which(a+b+c+d != e), 这也回馈了实际上正确的价值观。通过stackoverflow进行冲浪表明R在这种计算中存在一些问题。所以我试过了 which(all.equal(sum(a,b,c,d),e)!=T), 这会给我正确的结果,因为它测试了近似相等,但它没有将每一行(a,b,c,d)与e的每一行进行比较,而是整个向量。

R中是否有一个函数,它允许我以all.equal()的方式测试每一行?

1 个答案:

答案 0 :(得分:1)

听起来您可能希望将rowSums与列子集一起使用。使用示例数据框df

( df <- data.frame(x = 1:4, y = 2:5, z = c(3, 8, 2, 9)) )
#   x y z
# 1 1 2 3
# 2 2 3 8
# 3 3 4 2
# 4 4 5 9
rowSums(df[c("x", "y")]) == df[["z"]]
# [1]  TRUE FALSE FALSE  TRUE
which(rowSums(df[c("x", "y")]) == df[["z"]])
# [1] 1 4

但目前看来,你的问题还不清楚。请更新它以准确显示您想要的内容。