Arrays 使用“每个”导出R中的数组;“矩阵”;在另一张桌子上分开
我想以csv格式导出此数组,其中数组的每个矩阵都在单独的表中导出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,
> 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)以更好地理解发生了什么。请考虑接受我的回答,如果它对你有帮助,那太好了!