2017-11-19 13 views
2

3次元配列をdata.frameに変換する必要があります。3次元配列をデータフレームに変換する

例:

#create fake data 
#two vectors 
vec1 = c(2,13,22,98,4,8,8,1,10) 
vec2 = c(2,4,6,7,1,55,32,12,1) 

#3 dim array 
result = array(c(vec1,vec2),dim = c(3,3,2)) 
print(result) 

, , 1 

    [,1] [,2] [,3] 
[1,] 2 98 8 
[2,] 13 4 1 
[3,] 22 8 10 

, , 2 

    [,1] [,2] [,3] 
[1,] 2 7 32 
[2,] 4 1 12 
[3,] 6 55 1 

どのように私は手紙がCOLNAMES(それはまた、デフォルト値可能性が...)と、各行ある以下の9コルdata.frameは、result[,,i]スライスを表し得ることができます。

a b c d e f g h i 
2 13 22 98 4 8 8 1 10 
2 4 6 7 1 55 32 12 1 

私の本当の配列DIM = 140、200、20000

おかげ

答えて

2

array sおよびmatricesはちょうどそのdata.frame、これだけmatrixに改鋳、寸法を有するベクター、次のとおりです:あなたはmapply試みることができる

data.frame(matrix(result, nrow=2, byrow=TRUE)) 
# generalisably: 
data.frame(matrix(result, nrow=dim(result)[3], byrow=TRUE)) 

# X1 X2 X3 X4 X5 X6 X7 X8 X9 
#1 2 13 22 98 4 8 8 1 10 
#2 2 4 6 7 1 55 32 12 1 
2
as.data.frame(mapply(function(x, y) c(x, y), result[,,1], result[,,2])) 
# V1 V2 V3 V4 V5 V6 V7 V8 V9 
#1 2 13 22 98 4 8 8 1 10 
#2 2 4 6 7 1 55 32 12 1 
+0

おかげで...しかし、私の本当のアレイの非適用結果に多くの観測があるので、[,, i] – aaaaa

関連する問題