2014-08-28 68 views
1

我有一個巨大的數據庫,我必須測試不一致性。其中一項測試是總結一些故障值並控制總和是否相等。總結和比較不是問題。我用比較兩個向量中的每一行彼此

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

這聽起來像你可能想要使用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 

但當前標準的,你的問題還不清楚。請更新它以準確顯示您想要的內容。