使用rbind反转申请

bre*_*ews 5 arrays r

可以说我有一个数组foo,在R中有维度== c(150, 40, 30).现在,如果我:

bar <- apply(foo, 3, rbind)
Run Code Online (Sandbox Code Playgroud)

dim(bar)现在c(6000, 30).

什么是颠倒此过程,并从去最优雅,最通用的方法bar,以foo使它们是相同的?

问题不在于维度是正确的,而是在相同的顺序中获取数据,在其受尊重的原始维度内.

感谢您抽出宝贵时间,我期待您的回复.

PS对于那些认为这是一个更大问题的一部分的人来说,它是,而且,不,我还不能使用plyr.

jor*_*ran 7

我想你可以array再次打电话并指定原始尺寸:

m <- array(1:210,dim = c(5,6,7))
m1 <- apply(m, 3, rbind)
m2 <- array(as.vector(m1),dim = c(5,6,7))
all.equal(m,m2)
[1] TRUE
Run Code Online (Sandbox Code Playgroud)

  • 根据数据的顺序,您可能需要创建具有错误顺序的维度的数组,然后使用"aperm". (3认同)