我有三个清单:
"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(第二个列表)矩阵如第三个列表(索引)中所述。
注意:索引只是矩阵的下三角形。请告诉我如何制作矩阵,然后以矩阵形式映射这些列表值。 第三个清单中提到的指数。矩阵的对角线和上角部分可以是NA
答案 0 :(得分:2)
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 . . . . . . . . .