我对R很陌生,也许有一种很简单的方法可以做到这一点,但我无法在我的一生中找到这一点。我正在尝试将mutli层TIF文件转换为多通道TIF文件,为此,我需要将多个二维数组的列表转换为一个三维数组。

我试图简单地拆分列表中的9个不同的数组,创建一个具有3个维度的新列表,并将数组插入到新的列表中,但它一直告诉我“下标数量错误”。
multiChannelFile = array(c(960, 1280, 9))
for (row in 1:960) {
for (column in 1:1280) {
for (channel in 1:9) {
multiChannelFile[row, column, channel] = tifFile[channel][[1]][row, column]
}
}
}发布于 2020-09-16 12:12:26
您可以使用simplify2array()
multiChannelFile <- simplify2array(tifFile)发布于 2020-09-16 12:04:13
当然,一旦我发布了这个问题,我就想出了答案。
将multiChannelFile = array(c(960, 1280, 9))改为multiChannelFile = array(dim = c(960, 1280, 9))是很有意义的。
发布于 2020-09-16 12:13:37
您可以通过unlist()将列表混合到向量并重置维度。
array(unlist(tifFile), dim = c(dim(tifFile[[1]]), length(tifFile)))https://stackoverflow.com/questions/63919578
复制相似问题