2016-05-09 8 views
0

私は特定の列名を持つ配列を持っています。 この配列を行列に変換しようとしています。 どのように変換することができます3x9マトリックスの名前を維持することによって?3次元配列を行列に変換して、dimnamesを保持する

複製可能データ:

test <- structure(c(0.375273574511523, 0.333640287506392, 0.349192797931677, 
        0.337219826870885, 0.318182584380369, 0.320214135918515, 0.361795340513871, 
        0.303301639079779, 0.308995818880145, 0.486614010203226, 0.491666372158188, 
        0.450500424965387, 0.464697136076233, 0.467426609239434, 0.475098558417684, 
        0.467056879901411, 0.43139438188378, 0.452656403568038, 0.451463478297646, 
        0.516198183913922, 0.522289371444439, 0.499669539425807, 0.527507832814278, 
        0.529443687671795, 0.520999085947043, 0.526833049499385, 0.533862568866946 
), .Dim = c(3L, 3L, 3L), .Dimnames = list(c("100", "200", "300" 
), c("3", "4", "5"), c("0.025", "0.05", "0.075"))) 

所望の出力(のみ第一及び第二次元はkeeptするニーズをdimnames)3D dimnames(0.025、0.05及び0.075を除去することができます)。

enter image description here

+0

重複した列名が必要ですか?数字はどれですか? –

+0

ええ、列名を複製したいです。しかし、それらは必要な数字ではありません。例えば、私は3、a4、a5の代わりに、3,4、5 x100、x200、x300の代わりに100 200 300を書くことができました。 – S12000

答えて

3
たぶん

このような何か?おそらく重複した列名の世話をするためにいくつかの余分な努力が必要です。

do.call(cbind, lapply(1:3, function(i) test[,,i])) 

      3   4   5   3   4   5   3 
100 0.3752736 0.3372198 0.3617953 0.4866140 0.4646971 0.4670569 0.4514635 
200 0.3336403 0.3181826 0.3033016 0.4916664 0.4674266 0.4313944 0.5161982 
300 0.3491928 0.3202141 0.3089958 0.4505004 0.4750986 0.4526564 0.5222894 
      4   5 
100 0.4996695 0.5209991 
200 0.5275078 0.5268330 
300 0.5294437 0.5338626 
+0

ありがとう、これは私が探していたものです。 :) – S12000

+0

とても助かりました。 – Psidom

関連する問題