【问题标题】:R convert matrix to listR将矩阵转换为列表
【发布时间】:2015-05-27 05:58:54
【问题描述】:

我有一个大矩阵

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

但是,这需要很长时间。任何人都可以提出更快的方法吗?

【问题讨论】:

    标签: r matrix dataframe


    【解决方案1】:

    要将矩阵变成一个列表,列表的长度与矩阵中元素的个数相同,你可以这样做

    as.list(distMatrix)
    

    这在列中,但您可以使用转置

    as.list(t(distMatrix))
    

    让它跨越行。由于您的矩阵是 551x551,它应该足够高效。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-04-27
      • 2017-12-22
      • 2014-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多