我有一个庞大的数据库,必须在其中测试不一致之处。测试之一是总结一些细分值,并控制总计是否等于该值。总结和比较不是问题。我用了
which(a+b+c+d != e)
,它还返回了实际上正确的值。通过stackoverflow进行的冲浪表明,R在这种计算中存在一些问题。因此,我尝试了which(all.equal(sum(a,b,c,d),e)!=T)
,由于对其进行了近似相等的测试,因此会给我正确的结果,但是它不会将sum(a,b,c,d)的每一行与e的每一行进行比较,而是将整个向量进行比较。
R中是否有一个函数,该函数允许我以all.equal()的方式测试每一行?
听起来您可能想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
但是就目前而言,您的问题尚不清楚。请对其进行更新以准确显示您想要的内容。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句