将矩阵转换为列表的R代码

6

我有一个大矩阵

> str(distMatrix)
 num [1:551, 1:551] 0 6 5 Inf 5 ...
 - attr(*, "dimnames")=List of 2
  ..$ : chr [1:551] "+" "ABRAHAM" "ACTS" "ADVANCE" ...
  ..$ : chr [1:551] "+" "ABRAHAM" "ACTS" "ADVANCE" ...

这段文本包含数字值。我需要将所有数字值收集到一个长列表中(以获取分布情况)。目前的情况是:

for(i in 1:dim(distMatrix)[[1]]){
    for (j in 1:1:dim(distMatrix)[[1]]){
      distances[length(distances)+1] <- distMatrix[i,j]
    }  
  }

然而,那需要花费很长时间。有人能提供更快的方法吗?
1个回答

9

要将矩阵转换为列表,其长度与矩阵中元素的数量相同,您只需执行以下操作:

as.list(distMatrix)

这是沿列进行的,但您可以使用转置

as.list(t(distMatrix))

将其横跨行进行处理。由于您的矩阵为551x551,因此效率应足够高。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接