将R中的三维数组合并为二维数组
将将R中的三维数组合并为二维数组,r,R,将a设为如下数组 a <- array(1:24,c(2,3,4)) > a , , 1 [,1] [,2] [,3] [1,] 1 3 5 [2,] 2 4 6 , , 2 [,1] [,2] [,3] [1,] 7 9 11 [2,] 8 10 12 , , 3 [,1] [,2] [,3] [1,] 13 15 17 [2,] 14 16 18
a
设为如下数组
a <- array(1:24,c(2,3,4))
> a
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
, , 3
[,1] [,2] [,3]
[1,] 13 15 17
[2,] 14 16 18
, , 4
[,1] [,2] [,3]
[1,] 19 21 23
[2,] 20 22 24
还有另一种解决方案是使用
rbind
z[1,13]5
#> [2,] 2 4 6
#> [3,] 7 9 11
#> [4,] 8 10 12
#> [5,] 13 15 17
#> [6,] 14 16 18
#> [7,] 19 21 23
#> [8,] 20 22 24
此解决方案可通过apply
进行推广,以用于z!=4:
应用(a、2、rbind、deparse.level=0)
#> [,1] [,2] [,3]
#> [1,] 1 3 5
#> [2,] 2 4 6
#> [3,] 7 9 11
#> [4,] 8 10 12
#> [5,] 13 15 17
#> [6,] 14 16 18
#> [7,] 19 21 23
#> [8,] 20 22 24
这些解决方案之间的快速基准测试给出了警告
无法测量3565次评估的正执行时间。
当执行时间如此之快,以至于无法用微基准来衡量时,就会发生这种情况。
我检查了一下,失败的测量结果分布得相当均匀。实质上,,
似乎所有这些解决方案在性能上都没有明显的优势,即使在
我尝试了更大的阵列
由(v0.3.0)矩阵(aperm(a,c(1,3,2)),ncol=3)或应用(a,2,c)
> b
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
[3,] 7 9 11
[4,] 8 10 12
[5,] 13 15 17
[6,] 14 16 18
[7,] 19 21 23
[8,] 20 22 24