在R中写入和读取3D数组

Ern*_*nie 7 arrays r file data-structures

我在R中构建了一个3D数组(尽管名称似乎没有显示):

v.arr <- array(1:18, c(2,3,3), dimnames = c("A", "B", "X",
                          "Y","Z","P","Q","R"))
Run Code Online (Sandbox Code Playgroud)

当它打印到屏幕上时会显示如下:

, , 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
Run Code Online (Sandbox Code Playgroud)

我使用以下方法将其写入文件:

write.table(v.arr, file = “Test Data”)
Run Code Online (Sandbox Code Playgroud)

然后我再读一遍:

test.data <- read.table(“Test Data”)
Run Code Online (Sandbox Code Playgroud)

我明白了

  X1 X2 X3 X4 X5 X6 X7 X8 X9
1  1  3  5  7  9 11 13 15 17
2  2  4  6  8 10 12 14 16 18
Run Code Online (Sandbox Code Playgroud)

显然,我需要做一些事情来在编写之前构造文件,或者在回读时重构它以获取3D数组.我总是可以重构我从阅读中获得的数据.这是最好的方法吗?提前致谢.

TAR*_*man 7

你的问题是你正在使用write.table这个,所以它(我相信)强迫你的数组到一个表.如果您希望保存它并且不介意它是R特定格式,您可以轻松使用saveload功能.

save(v.arr,file = "~/Desktop/v.arr.RData")
rm(list=ls())

load("~/Desktop/v.arr.RData")
v.arr
Run Code Online (Sandbox Code Playgroud)