2016-03-19 8 views
1
Ben senin konsola

sparseMatrix komut

içine matrisi kopyalamak için muktedir Ayrıca dput komutunu vermiş

[1,] 1.002 0.210 0.002 .  .  .  2.943 0.051 
[2,] 0.210 1.002 0.210 .  .  .  7.515 2.943 
[3,] 0.002 0.210 1.002 .  .  .  0.843 7.515 
[4,] .  .  .  16.003 3.354 0.031 18.691 1.122 
[5,] .  .  .  3.354 16.003 3.354 13.675 18.691 
[6,] .  .  .  0.031 3.354 16.003 0.440 13.675 
[7,] 2.943 7.515 0.843 18.691 13.675 0.440 109.002 22.848 
[8,] 0.051 2.943 7.515 1.122 18.691 13.675 22.848 109.002 

altına matrisi oluşturmak için R (Matrix paketi) içinde sparseMatrix komutunu kullanabilirsiniz nasıl

new("dsCMatrix" 
    , i = c(0L, 0L, 1L, 0L, 1L, 2L, 3L, 3L, 4L, 3L, 4L, 5L, 0L, 1L, 2L, 
3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L) 
    , p = c(0L, 1L, 3L, 6L, 7L, 9L, 12L, 19L, 27L) 
    , Dim = c(8L, 8L) 
    , Dimnames = list(NULL, NULL) 
    , x = c(1.002, 0.21, 1.002, 0.002, 0.21, 1.002, 16.003, 3.354, 16.003, 
0.031, 3.354, 16.003, 2.943, 7.515, 0.843, 18.691, 13.675, 0.44, 
109.002, 0.051, 2.943, 7.515, 1.122, 18.691, 13.675, 22.848, 
109.002) 
    , uplo = "U" 
    , factors = list() 
) 
+0

İhtiyacınız eklemek gerekir böylece dayalı Satır, sütun dizini ve 'x' veya değer sağlamak için – akrun

+0

@akrun Komutun – raK1

+0

gerektirmesi gereken sıfır olmayan öğelerin tam yapısını anlayamıyorum. Satırını vektör olarak geçirmelisiniz, örneğin eleman 1.002 satır1, aynı sütun üzerinde 2. 0.210, yani, 'sparseMatrix (c (1,2, ..), c (1,1, ...), x = c (1.002, 0.210, ... olduğunu) – akrun

cevap

1

Bir CsparseMatrix'iniz var ve sütun dizinlerine sahip değiller, ancak bunlara sahip olan bir TsparseMatrix'i zorlamak kolaydır. (Dahili x-değerleri mevcut değerlerin) i ve j parametreleri ziyade esaslı 0 olan 1 onlarla bir şeyler ele almak isterseniz 1.

CSM <- new("dsCMatrix" 
    , i = c(0L, 0L, 1L, 0L, 1L, 2L, 3L, 3L, 4L, 3L, 4L, 5L, 0L, 1L, 2L, 
3L, 4L, 5L, 6L, 0L, 1L, 2L, 3L, 4L, 5L, 6L, 7L) 
    , p = c(0L, 1L, 3L, 6L, 7L, 9L, 12L, 19L, 27L) 
    , Dim = c(8L, 8L) 
    , Dimnames = list(NULL, NULL) 
    , x = c(1.002, 0.21, 1.002, 0.002, 0.21, 1.002, 16.003, 3.354, 16.003, 
0.031, 3.354, 16.003, 2.943, 7.515, 0.843, 18.691, 13.675, 0.44, 
109.002, 0.051, 2.943, 7.515, 1.122, 18.691, 13.675, 22.848, 
109.002) 
    , uplo = "U" 
    , factors = list() 
) 
TSM <-as(CSM, "TsparseMatrix") 
[email protected] 
# [1] 0 0 1 0 1 2 3 3 4 3 4 5 0 1 2 3 4 5 6 0 1 2 3 4 5 6 7 
[email protected] 
# [1] 0 1 1 2 2 2 3 4 4 5 5 5 6 6 6 6 6 6 6 7 7 7 7 7 7 7 7 
[email protected] +1 
# [1] 1 2 2 3 3 3 4 5 5 6 6 6 7 7 7 7 7 7 7 8 8 8 8 8 8 8 8 
[email protected] +1 
# [1] 1 1 2 1 2 3 4 4 5 4 5 6 1 2 3 4 5 6 7 1 2 3 4 5 6 7 8