2014-06-06 65 views
1

我有一個大的稀疏矩陣R中分析例如:提取稀疏行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 

我想從這個矩陣中提取行,第一個稀疏向量。 如果我寫

(x=A[1,]) 

我獲得

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

但我想是

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

我想到的是,新的載體不兌現的零。我怎樣才能做到這一點?

感謝

回答

2

您可以使用drop = FALSE

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

謝謝您的建議。我可以問你另一個問題嗎?當我得到這一行時,x = A [1,,drop = FALSE],我需要執行其外部乘積p = x%o%x,但是p仍然是一個密集矩陣...是否有任何命令來設置R中的「稀疏環境」? – user3714759

+0

@ user3714759你可以試試'library(Matrix);矩陣(x%o%x,sparse = TRUE)'。 ''%o%''函數返回一個「正常」矩陣。 –

+0

再次感謝您,我會盡力的 – user3714759