【发布时间】:2014-02-24 19:24:01
【问题描述】:
在 R 中,我想将一个数组(维度:i、j、k)转换为一个矩阵,这样新矩阵的观察值(即行)是数组中的每个元素,一次拉出 k 个“层”。本质上,同样,新矩阵的行将由前一个数组的每个元素组成,矩阵的列等于数组的 k 维。因此,新矩阵应该由 i*j 行和 k 列组成。
如果我可以澄清或提供输入/输出示例,请告诉我!
谢谢!
编辑: 此代码有效(但未优化)-
m = array(1:27,dim = c(3,3,3))
m
dim = dim(m)
mparam = dim[3]
listm = list()
for (i in 1:mparam){
listm[[i]] = as.vector(m[,,i])
}
untran = do.call(rbind,listm)
transposed = t(untran)
transposed
【问题讨论】:
-
是的,请提供输入和所需输出的最小示例。人们通常更乐意通过一个小的“复制/粘贴示例”来提供帮助,并且更容易准确地理解你想要什么。参见例如here 干杯。
-
顺便说一句,我同意 Henrik 的观点。这次我可能已经能够正确猜到你想要什么,但这只是一个猜测。我回答了一半,希望不得不删除我的答案,因为您没有提供示例。请在以后这样做。