【问题标题】:Create sparse matrices from given LT indices but fill with values in other list从给定的 LT 索引创建稀疏矩阵,但填充其他列表中的值
【发布时间】:2016-11-17 08:53:28
【问题描述】:

我有三个列表:

"corMat"     "corMatPVAL" "index"

> head(corMat)
          [,1]
[1,] 0.7786662
[2,] 0.7536617
[3,] 0.7950954
[4,] 0.7950954
[5,] 0.7950954
[6,] 0.7388970


> head(corMatPVAL)
              [,1]
[1,] 6.166382e-155
[2,] 1.304651e-139
[3,] 3.756711e-166
[4,] 3.756711e-166
[5,] 3.756711e-166
[6,] 2.097761e-131

> head(index)
     [,1]
[1,]   82
[2,]  271
[3,]  441
[4,]  442
[5,]  443
[6,]  501

我必须制作两个大小为 48389 行和 48389 列的矩阵,即一个用于填充第三个列表(索引)中提供的索引的 corMat 值(第一个列表)和一个填充相同索引的 corMatPVAL(第二个列表)矩阵如第三个列表(索引)中所述。

注意:索引仅是矩阵的下三角形。请让我知道如何制作矩阵,然后以矩阵形式映射这些列表值。 第三个列表中提到的索引。矩阵的对角线和upper.tri部分可以是NA

【问题讨论】:

  • Matrix::sparseMatrix 可能很有用
  • @KHANirfan 你能停止反战吗?我编辑了标题,以便它告诉用户更多关于您想要做什么:从索引和值的 LT(下三角)矩阵创建一个稀疏矩阵。
  • KHANirfan 你已经得到了来自@Miff 的使用Matrix::sparseMatrix 的建议,试试这个,如果它失败了,在这里发布你的代码并解释什么是错的。你必须安装Matrix 包,是吗?它不是内置在 R 中的。根据vignette for Matrix,它在 3.3.1 下支持。如果您在安装时遇到问题,请发布一个单独的新问题。

标签: r list matrix sparse-matrix


【解决方案1】:
library(Matrix)
sparseMatrix(index, seq_along(index), , corMat, c(48389,  48389))
sparseMatrix(index, seq_along(index), , corMatPVAL, c(48389,  48389))

这可能很难可视化输出,所以举个玩具例子:

sparseMatrix(10:6, 1:5, , 1:5/10,  c(10,  10))
#10 x 10 sparse Matrix of class "dgCMatrix"
#                                   
# [1,] .   .   .   .   .   . . . . .
# [2,] .   .   .   .   .   . . . . .
# [3,] .   .   .   .   .   . . . . .
# [4,] .   .   .   .   .   . . . . .
# [5,] .   .   .   .   .   . . . . .
# [6,] .   .   .   .   0.5 . . . . .
# [7,] .   .   .   0.4 .   . . . . .
# [8,] .   .   0.3 .   .   . . . . .
# [9,] .   0.2 .   .   .   . . . . .
#[10,] 0.1 .   .   .   .   . . . . .

【讨论】:

  • 亲爱的伙计们 以下为我工作 corMat.matrix
猜你喜欢
  • 2018-05-06
  • 2023-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-29
  • 2012-01-10
  • 1970-01-01
相关资源
最近更新 更多