我在R中有一个非常长的数组(1955x2417x1),其中每个位置存储一个长度为5的两个向量(名为“max”和“min”)的列表。
我想找到一种简单的方法来创建一个多维数组(dim 1955x2417x5),其中每个位置都包含来自vector“max”的单个值 我查看了诸如array of lists in r
之类的答案但到目前为止还没有成功。 我知道我可以使用
访问数组每个位置的列表myarray[posX, PosY][[1]][["max"]]
但如何将其应用于整个数组? 到目前为止,我已经尝试了
newArray <- array( unlist(myarray[][[1]][["max"]]), c(1955, 2417, 5))
和
NewArray <-parApply(cl, myarray, c(1:2), function(x) {
a=x[[1]][["max"]]
} )
但结果不对。
你有什么建议吗?
答案 0 :(得分:0)
让
e <- list(min = 1:3, max = 4:6)
arr <- array(list(e)[rep(1, 8)], c(2, 4))
dim(arr)
# [1] 2 4
然后一个选项是
res <- apply(arr, 1:2, function(x) x[[1]][["max"]])
dim(res)
# [1] 3 2 4
并且,如果维度的顺序很重要,
dim(aperm(res, c(2, 3, 1)))
# [1] 3 2 4