将3维数组转换为数据框

aaa*_*aaa 5 arrays r dataframe

我需要将3维数组转换为data.frame。

例:

#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
Run Code Online (Sandbox Code Playgroud)

我如何获得以下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
Run Code Online (Sandbox Code Playgroud)

我的真实数组dim = 140、200、20000

谢谢

the*_*ail 9

arrays 和matrices是具有维度的向量,因此重铸为 a matrix,然后data.frame

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
Run Code Online (Sandbox Code Playgroud)