3

我想制作3维数组。

这是我尝试过的:

z<-c(160,720,420)
first_data_set <-array(dim = length(file_1), dimnames = z)

我正在阅读的数据处于一个级别。(只有x和y)还有其他相同格式的数据,我需要把它们和第一个数据放在同一个数组中。所以一旦我读完所有数据,它们都在同一个数组中,但没有覆盖。

所以我认为数组必须是3维;否则我无法将我读取的所有数据都保存在循环中。

4

1 回答 1

7

假设您有两个大小为 3x4 的矩阵:

m1 <- matrix(rnorm(12), nrow = 3, ncol = 4)
m2 <- matrix(rnorm(12), nrow = 3, ncol = 4)

如果要将它们放在一个数组中,请首先制作一个 NA 数组:

A <- array(as.numeric(NA), dim = c(3,4,2))

然后用数据填充图层:

A[,,1] <- m1
A[,,2] <- m2

正如@Justin 所建议的,您也可以将矩阵放在一个列表中:

A2 <- list()
A2[['m1']] <- m1
A2[['m2']] <- m2

从文件中读取矩阵:使用列表可以更轻松地从目录中的文件中获取这些矩阵,而无需提前指定维度。假设您想要所有带有扩展名的文件csv

myfiles <- dir(pattern = ".csv")
for (i in 1:length(myfiles)){
   A2[[myfiles[i]]] <- read.table(myfiles[i], sep = ',')
}
于 2012-04-10T19:54:56.557 回答