如何将四个向量组合成三维数组?

时间:2018-04-22 11:30:54

标签: r multidimensional-array vector

a <- 1:6;
b <- seq(0.2,8,length.out = 6)
set.seed(1)
d <- runif(6, 0, 1)
e <- rnorm(6, 0, 1)

如何得到以下结果:由6个矩阵组成的三维数组dim = c(2, 2, 6)。第i个矩阵由[i],b [i],d [i],e [i]组成。

2 个答案:

答案 0 :(得分:3)

以下是使用rbind的方法。这是因为R按列存储矩阵,因此我们可以使用rbind在存储到数组中之前将a,b,d和e的相应值的值存储在一起。

myArray <- array(rbind(a, b, d, e), c(2, 2, 6))

前两个Z值是

myArray[,,1:2]
, , 1

     [,1]      [,2]
[1,]  1.0 0.2655087
[2,]  0.2 1.5952808

, , 2

     [,1]      [,2]
[1,] 2.00 0.3721239
[2,] 1.76 0.3295078

答案 1 :(得分:1)

array_test <- array(,c(2, 2, 6)) 
 for(i in 1:6){
      array_test[,,i] <- matrix(c(a[i],b[i],d[i],e[i]), ncol = 2, nrow = 2)
 }