我有一个庞大的数据库,在那里我必须测试不一致的地方。其中一个测试是总结一些故障值,并控制总数是否等于该值。总结和比较不是问题。我用过
which(a+b+c+d != e)
,它还提供了一些实际正确的值。研究表明,R在这种计算中存在一些问题。因此,我尝试了which(all.equal(sum(a,b,c,d),e)!=T)
,这将给我正确的结果,因为它的测试接近相等,但它没有比较每一行和(a,b,c,d)与每一行e,而是整个向量。
R中是否有一个函数,它允许我以all.equal()所做的方式测试每一行?
发布于 2014-08-28 07:22:19
听起来,您可能希望在列子集中使用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
但就目前情况而言,你的问题还不清楚。请更新它以显示您想要的内容。
https://stackoverflow.com/questions/25542687
复制相似问题