R中

2013-01-16 118 views
0

矩陣轉換到一個數組我有列表矩陣如下:R中

01_2_020.gth 02_2_020.gth 03_2_020.gth 04_2_015.gth 05_2_015.gth 06_2_015.gth 07_2_010.gth 

[1,] 0.5643314 0.5440568 0.5506353 0.4717183 0.4659001 0.4981198 0.3697551 
[2,] 0.6365412 0.6135798 0.6211972 0.5207896 0.5208007 0.5519582 0.4210863 
[3,] 0.6961687 0.6745536 0.6803473 0.5742673 0.5687056 0.596461  0.4613756 
[4,] 0.7571837 0.7258654 0.7354272 0.6200432 0.6084758 0.6457854 0.5016579 

我想這個矩陣轉換成一個陣列結構如下:

$`01_2_020.gth` 

    [1] 1.3519346 1.3529605 1.3465736 1.3350906 1.3443445 1.3311501 1.3339374 1.3128332 1.3172605 
[10] 1.3070263 1.2991674 1.2943014 1.2892072 1.2857247 1.2764447 1.2644700 1.2608630 1.2597877 
[19] 1.2460450 1.2377009 1.2416192 1.2396816 1.2314797 1.2282107 1.2206790 1.2176491 1.2163807 

$`02_2_020.gth` 

    [1] 1.3259280 1.3180293 1.3153046 1.3101223 1.3014639 1.2927999 1.2851856 1.2813943 1.2719856 
[10] 1.2636101 1.2617434 1.2503571 1.2410282 1.2437357 1.2299740 1.2224429 1.2138308 1.2070487 
[19] 1.2131742 1.1957252 1.1943047 1.1841959 1.1792643 1.1695081 1.1530798 1.1613240 1.1542210 

我真的不知道如何開始。

str功能讓我在第一種情況:

> str(x) 
List of 570 
$ : num 0.564 
$ : num 0.637 
$ : num 0.696 
$ : num 0.757 
$ : num 0.811 
$ : num 0.855 
$ : num 0.892 
$ : num 0.934 
$ : num 0.967 
$ : num 0.998 
$ : num 1.02 
$ : num 1.06 
$ : num 1.09 
$ : num 1.11 
$ : num 1.12 
$ : num 1.14 
$ : num 1.16 
$ : num 1.17 
$ : num 1.19 
$ : num 1.21 
$ : num 1.22 
$ : num 1.24 
$ : num 1.25 
... 
    [list output truncated] 
- attr(*, "dim")= int [1:2] 38 15 
- attr(*, "dimnames")=List of 2 
    ..$ : NULL 
    ..$ : chr [1:15] "01_2_020.gth" "02_2_020.gth" "03_2_020.gth" ... 

str功能讓我在第二種情況:

> str(groupedDissociationsValues)<br/> 
List of 15<br/> 
$ 01_2_020.gth: num [1:120] 1.35 1.35 1.35 1.34 1.34 ... 
$ 02_2_020.gth: num [1:120] 1.33 1.32 1.32 1.31 1.3 ... 
$ 03_2_020.gth: num [1:120] 1.31 1.3 1.3 1.29 1.29 ... 
$ 04_2_015.gth: num [1:120] 1.18 1.18 1.18 1.17 1.16 ... 
$ 05_2_015.gth: num [1:120] 1.17 1.17 1.17 1.16 1.15 ... 
$ 06_2_015.gth: num [1:120] 1.18 1.18 1.17 1.18 1.17 ... 
$ 07_2_010.gth: num [1:120] 0.986 0.984 0.975 0.981 0.972 ... 
$ 08_2_010.gth: num [1:120] 0.955 0.957 0.952 0.947 0.941 ... 
$ 09_2_010.gth: num [1:120] 0.963 0.96 0.952 0.954 0.952 ... 
$ 10_2_004.gth: num [1:120] 0.558 0.558 0.554 0.547 0.551 ... 
$ 11_2_004.gth: num [1:120] 0.475 0.477 0.476 0.482 0.477 ... 
$ 12_2_004.gth: num [1:120] 0.529 0.523 0.521 0.523 0.515 ... 
$ 13_2_025.gth: num [1:120] 1.31 1.3 1.3 1.29 1.29 ... 
$ 14_2_025.gth: num [1:120] 1.33 1.33 1.33 1.32 1.31 ... 
$ 15_2_025.gth: num [1:120] 1.29 1.28 1.28 1.27 1.27 ... 
- attr(*, "dim")= int 15 
- attr(*, "dimnames")=List of 1 
    ..$ : chr [1:15] "01_2_020.gth" "02_2_020.gth" "03_2_020.gth" ... 

有別人的想法?

+0

這些值只是虛擬值。所以他們不匹配。但是我想做什麼的想法很有希望。 – chriga

+0

我發現比標記的更好的解決方案是防止錯誤的數據格式。我改變了數據的創建。但我沒有要求。 – chriga

回答

1

如果您未列出,它將按順序將其存儲爲矢量。然後只是強迫數組(仍然是一個向量,但是具有維度屬性)。

> test <- rep(list(1),99) 
> testArray <- array(unlist(test), dim=c(3,3,11)) 
> testArray 
, , 1 

    [,1] [,2] [,3] 
[1,] 1 1 1 
[2,] 1 1 1 
[3,] 1 1 1 

, , 2 

    [,1] [,2] [,3] 
[1,] 1 1 1 
[2,] 1 1 1 
[3,] 1 1 1 
... 
+0

嗨,謝謝。這有助於。 – chriga