我有一个巨大的数据库,我必须测试不一致性。其中一个测试是总结一些细分值并控制总数是否等于。总结和比较不是问题。我用了
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()的方式测试每一行?
答案 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
但目前看来,你的问题还不清楚。请更新它以准确显示您想要的内容。