R 将矩阵转换为列表

标签 r matrix dataframe

我有一个大矩阵

> 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]
    }  
  }

然而,这需要永远。谁能建议一个更快的方法?

最佳答案

要将矩阵变成列表,列表的长度与矩阵中元素的数量相同,您可以简单地执行

as.list(distMatrix)

这会向下列,但您可以使用转置
as.list(t(distMatrix))

让它穿过行。由于您的矩阵是 551x551,它应该足够有效。

关于R 将矩阵转换为列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29223907/

相关文章:

python group by,将列传递给聚合函数参数

r - R 包 pscl 中的 Ideal() 不会产生可重复的结果

html - 使用 R 的 rvest 包和 RSelenium 进行网页抓取

r - 使用多个 if else 语句

c++ - 按矩阵类型转换矩阵乘法,C++

arrays - 用中间的最大值填充二维数组的算法

r - 用零展开 R 矩阵的极值

python - Groupby 和基于特定行值的计算

r - 将十六进制格式转换为R中的 float

r - 使用 as.data.frame.matrix 时保留行名称