将矢量转换为三维矩阵

时间:2017-06-25 17:51:53

标签: arrays r matrix

我想要这个载体

v <- c(111,112,121,122,211,212,221,222)

转换为三维矩阵,结果如下:

,,1
111 112
121 122
,,2
211 212
221 222

使用dim(v) <- c(2,2,2)会产生类似

的结构
,,1
     [,1] [,2]
[1,]  111  121
[2,]  112  122

,,2  
     [,1] [,2]
[1,]  211  221
[2,]  212  222

我想有一种非常简单的方法可以做到这一点,但我猜我在Google中使用了错误的关键字。谢谢你的帮助!

1 个答案:

答案 0 :(得分:2)

很难知道你一般在做什么,但是对于你给出的例子,我看到在dim(v) <- c(2,2,2)之后,结果数组与转置/置换的预期输出不同。所以我做了

aperm(v, c(2,1,3))

也就是说,我们正在做:

for (i in 1:2) v[,,i] <- t(v[,,i])