我想在三维中制作数组。
以下是我的尝试:
z<-c(160,720,420)
first_data_set <-array(dim = length(file_1), dimnames = z)
我正在阅读的数据是一个级别。 (只有x和y) 还有其他数据采用相同的格式,我需要将它们与第一个数据放在同一个数组中。所以一旦我读完所有数据,它们都在同一个数组中,但没有覆盖。
所以我认为数组必须是3维;否则我无法保留我在循环中读取的所有数据。
答案 0 :(得分: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 = ',')
}