gpt4 book ai didi

r - 从稀疏向量列表创建稀疏矩阵

转载 作者:行者123 更新时间:2023-12-04 12:20:49 35 4
gpt4 key购买 nike

我有一个稀疏向量列表(在 R 中)。我需要将此列表转换为稀疏矩阵。
通过 for 循环完成需要很长时间。

sm<-spMatrix(length(tc2),n.col)
for(i in 1:length(tc2)){
sm[i,]<-(tc2[i])[[1]];
}

有没有更好的办法?

最佳答案

这是一个两步解决方案:

  • 使用 lapply()as(..., "sparseMatrix") sparseVectors 列表转换为一列 sparseMatrices 的列表。
  • 使用 do.call()cBind() 稀疏矩阵 组合到单个 稀疏矩阵 中。

  • require(Matrix)

    # Create a list of sparseVectors
    ss <- as(c(0,0,3, 3.2, 0,0,0,-3), "sparseVector")
    l <- replicate(3, ss)

    # Combine the sparseVectors into a single sparseMatrix
    l <- lapply(l, as, "sparseMatrix")
    do.call(cBind, l)

    # 8 x 3 sparse Matrix of class "dgCMatrix"
    #
    # [1,] . . .
    # [2,] . . .
    # [3,] 3.0 3.0 3.0
    # [4,] 3.2 3.2 3.2
    # [5,] . . .
    # [6,] . . .
    # [7,] . . .
    # [8,] -3.0 -3.0 -3.0

    关于r - 从稀疏向量列表创建稀疏矩阵,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8843700/

    35 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com