假设X是一个大型稀疏矩阵,其中每一行只有一个与零不同的条目。我有一个向量pos,它包含这个非零元素所在的列的位置。要填充矩阵,下面的循环工作:
for (row in 1:nrow(X)) {
X[row, pos[row]] <- 1
}有没有一种不需要循环的方法,也许可以使用sapply
发布于 2016-04-01 00:56:01
您可以看看矩阵中的sparseMatrix函数:
> library(Matrix)
> (pos = sample(1:7))
[1] 5 1 6 4 7 2 3
> sparseMatrix(1:7, pos)
7 x 7 sparse Matrix of class "ngCMatrix"
[1,] . . . . | . .
[2,] | . . . . . .
[3,] . . . . . | .
[4,] . . . | . . .
[5,] . . . . . . |
[6,] . | . . . . .
[7,] . . | . . . .package的函数需要一些使用,但是当使用稀疏矩阵时,它们提供了大量的好处。
https://stackoverflow.com/questions/36346174
复制相似问题