从 R 中的矩阵中提取值

Extract values from a matrix in R

我有一个大矩阵,我想提取 >0 和 <5 的值。我用函数创建这个矩阵

包“proxy”的“dist”。输出是 crossmat 类型的对象。

a <- df1
b <- df2 

其中 df1 和 df2 是坐标为 x,y,z 的 df。然后我用了

 library (proxy)
    dm <-  dist(a, b , method = "euclidean") 

现在我想从此矩阵中提取值,并将它们放在一个具有 3 列的 df 中,例如。

index (row) index (column)   value 
     256          544        3.5489


head (result) 
     row col    value
3672 307 192 4.963545
3673 308 192 4.848763
3672 307 193 4.769458
3673 308 193 4.645692
3674 309 193 4.889749
3672 307 194 4.125620

例如,我需要的号码是 3672 而不是 307。

您可以尝试使用 whicharr.ind = TRUE :

mat <- which(dm > 0 & dm < 5, arr.ind = TRUE)
result <- cbind(mat, value = dm[mat])
result