从r中的稀疏矩阵中提取稀疏行

时间:2014-06-06 11:20:46

标签: r sparse-matrix sparse-array

我有一个大的稀疏矩阵在R中进行分析。例如:

i <- c(1,3:8); j <- c(2,9,6:10); x <- 7 * (1:7)
(A <- sparseMatrix(i, j, x = x))
[1,] . 7 . . .  .  .  .  .  .
[2,] . . . . .  .  .  .  .  .
[3,] . . . . .  .  .  . 14  .
[4,] . . . . . 21  .  .  .  .
[5,] . . . . .  . 28  .  .  .
[6,] . . . . .  .  . 35  .  .
[7,] . . . . .  .  .  . 42  .
[8,] . . . . .  .  .  .  . 49

我想从这个矩阵中提取 i 第一行,作为稀疏向量。 如果我写

(x=A[1,])

我获得了

 [1] 0 7 0 0 0 0 0 0 0 0

但我想要的是

 [1] . 7 . . . . . . . .

我期望新向量不会实现零。我怎么能这样做?

由于

1 个答案:

答案 0 :(得分:3)

您可以使用drop = FALSE

A[1, , drop = FALSE]
# 1 x 10 sparse Matrix of class "dgCMatrix"
#                        
# [1,] . 7 . . . . . . . .