繁体   English   中英

从 R 中的矩阵中提取值

[英]Extract values from a matrix in R

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

package“代理”的“dist”。 output 是交叉垫类型的 object。

a <- df1
b <- df2 

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM