Arrays 使用“每个”导出R中的数组;“矩阵”;在另一张桌子上分开

Arrays 使用“每个”导出R中的数组;“矩阵”;在另一张桌子上分开,arrays,r,csv,Arrays,R,Csv,我想以csv格式导出此数组,其中数组的每个矩阵都在单独的表中导出 > a <- aperm(array(1:96, dim= c(4,8,3)), c(2,1,3)) , , 1 [,1] [,2] [,3] [,4] [1,] 1 2 3 4 [2,] 5 6 7 8 [3,] 9 10 11 12 [4,] 13 14 15 16 [5,] 17 18 19 20 [6,

我想以csv格式导出此数组,其中数组的每个矩阵都在单独的表中导出

> a <- aperm(array(1:96, dim= c(4,8,3)), c(2,1,3))
, , 1

     [,1] [,2] [,3] [,4]
[1,]    1    2    3    4
[2,]    5    6    7    8
[3,]    9   10   11   12
[4,]   13   14   15   16
[5,]   17   18   19   20
[6,]   21   22   23   24
[7,]   25   26   27   28
[8,]   29   30   31   32

, , 2

     [,1] [,2] [,3] [,4]
[1,]   33   34   35   36
[2,]   37   38   39   40
[3,]   41   42   43   44
[4,]   45   46   47   48
[5,]   49   50   51   52
[6,]   53   54   55   56
[7,]   57   58   59   60
[8,]   61   62   63   64

, , 3

     [,1] [,2] [,3] [,4]
[1,]   65   66   67   68
[2,]   69   70   71   72
[3,]   73   74   75   76
[4,]   77   78   79   80
[5,]   81   82   83   84
[6,]   85   86   87   88
[7,]   89   90   91   92
[8,]   93   94   95   96

我仍然不是100%清楚,但这就是你想要做的吗

a = aperm(array(1:96, dim= c(4,8,3)), c(2,1,3))

b = a[,,1]

for( i in 2:dim(a)[3])
{
  # uncomment the line below if you want no white space between tables.
  b = rbind(b, rep("",ncol(b)))
  b = rbind(b,a[,,i])
}

write.csv(b,file="test.csv",row.names = F)
产生的csv:


您能更准确地解释一下生成的csv应该是什么样子吗?如果使用write.csv(),我将矩阵从左到右连接起来,不分离地写入。我希望它们彼此独立,以后代的方式组织它们是最好的(2:dim(a)[3])这部分代码是什么意思?我已经在b数据帧中添加了一个[,1],所以现在我们仍然要添加一个[,2]和一个[,3]。1的尺寸是8x4x3,我们希望在第三维上循环。在控制台中尝试调暗(a)
。因此,在本例中,它简化为for(2:3中的i)。您的代码可以工作,但我希望将它们用于不同长度的数据集。我需要理解它,以便将其用于不同的数据集。我对你所做的有一个直觉,但我想请你解释一下(我在2:dim(a)[3]),这意味着在第三维度上重复2次?对不起,我没有正确学习循环函数。我怎样才能学会它们?请看这里。您可以从创建一个for循环开始,打印(i)以更好地理解发生了什么。请考虑接受我的回答,如果它对你有帮助,那太好了!