我有一个6D矩阵(它可能最终变大),我想保存为txt,csv或xcel文件.我想这样做是因为输出对于控制台窗口来说太大了,我只是希望能够在分析数据之前快速查看数据.此外,我的主管不使用R,所以如果我想让他查看我需要能够将其导出R的数据.
我想要的是能够看到数据,标题告诉我我所在的矩阵的哪一部分.即
,, 1,5,6,5
或者,可以将数据重新排列成表格,条件是数据集的每一行指定它所在的矩阵的哪个部分,例如矩阵的每个维度的列.
到目前为止,我已经试过write.matrix,write.csv以及write.big.matrix没有成功.
我得到的错误消息write.big.matrix是:
Error in (function (classes, fdef, mtable) :
unable to find an inherited method for function ‘write.big.matrix’ for signature ‘"array", "character"’
Run Code Online (Sandbox Code Playgroud)
非常感谢您的帮助.
建议:
让您的主管与R合作
使用该ncdf包编写一个NetCDF文件,该文件可以是多维的(通常用于4D的时空数据)
使用reshape2包将数组转换为i,j,k,l,m,n,value格式化数据框(其中i到n是您的维度索引,value是值A[i,j,k,l,m,n].这是一个三维示例:
一个=阵列(样品(24),C(2,3,4))
a现在是一个3d数组:
> a
, , 1
[,1] [,2] [,3]
[1,] 23 21 20
[2,] 22 7 14
, , 2
[,1] [,2] [,3]
[1,] 11 9 5
[2,] 12 6 17
, , 3
[,1] [,2] [,3]
[1,] 16 3 24
[2,] 1 10 4
, , 4
[,1] [,2] [,3]
[1,] 2 19 8
[2,] 18 15 13
Run Code Online (Sandbox Code Playgroud)
它然后是一个单行:
> require(reshape2)
> melt(a)
Var1 Var2 Var3 value
1 1 1 1 23
2 2 1 1 22
3 1 2 1 21
4 2 2 1 7
5 1 3 1 20
6 2 3 1 14
7 1 1 2 11
...
17 1 3 3 24
18 2 3 3 4
19 1 1 4 2
20 2 1 4 18
21 1 2 4 19
22 2 2 4 15
23 1 3 4 8
24 2 3 4 13
Run Code Online (Sandbox Code Playgroud)
得到的东西,你可以write.table为您的Excel爱好主管CSV文件.