2016-08-18 17 views
0

我有一個可能很簡單的問題,但沒有找到一個簡單而全面的方法來做到這一點。檢查R中的替代矩陣幾乎相等

我有一個替代矩陣,我想檢查一下特定(或幾乎相等)的值是否在我的變電站矩陣中。如果我要搜索確切的值,我可以使用==並返回矩陣。但是如何獲得與all.equal函數類似的結果來提供特定的精度。

a <- matrix(c(0.00000, -85.063997, -43.005813, 
       85.06400, 0.000000, 42.058184, 
       43.00581, -42.058184, 0.000000),3,byrow=TRUE) 
85.06400 == a 
all.equal(85, a) 

我很想只獲取列和行索引或名稱。

感謝您的任何幫助或提示。

+0

'which(floor(a)== 85,arr.ind = TRUE)'? – Sotos

回答

1

有一些細節(比如你想測量絕對誤差還是相對誤差),但是abs(x-y)<eps是一個開始:那麼你可以使用which(...,arr.ind=TRUE)來獲得行/列索引。

a <- matrix(c(0.00000, -85.063997, -43.005813, 
       85.06400, 0.000000, 42.058184, 
       43.00581, -42.058184, 0.000000),3,byrow=TRUE) 
target <- 85.06400 
which(abs(a-target)<.Machine$double.eps,arr.ind=TRUE) 
##  row col 
## [1,] 2 1