我将行主数据作为向量放入 R 中。 R 将此解释为列主要数据,据我所知,无法告诉数组以行主要方式运行。
假设我有:
array(1:12, c(3,2,2),
dimnames=list(c("r1", "r2", "r3"), c("c1", "c2"),c("t1", "t2"))
)
这给出:
, , t1
c1 c2
r1 1 4
r2 2 5
r3 3 6
, , t2
c1 c2
r1 7 10
r2 8 11
r3 9 12
我想将此数据转换为行优先数组:
, , t1
c1 c2
r1 1 2
r2 3 4
r3 5 6
, , t2
c1 c2
r1 7 8
r2 9 10
r3 11 12
最佳答案
假设您的数组位于 a
中,即您已经拥有此数组并且无法在读取时更改它,则以下内容将起作用:
a <- array(1:12, c(3,2,2),
dimnames=list(c("r1", "r2", "r3"), c("c1", "c2"),c("t1", "t2")))
b <- aperm(array(a, dim = c(2,3,2),
dimnames = dimnames(a)[2:1]),
perm = c(2,1,3))
b
> b
, , 1
c1 c2
r1 1 2
r2 3 4
r3 5 6
, , 2
c1 c2
r1 7 8
r2 9 10
r3 11 12
关于arrays - 将行优先维度切换为列优先维度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12859215/