arrays - 将行优先维度切换为列优先维度

标签 arrays r

我将行主数据作为向量放入 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/

相关文章:

ios - 如何过滤二维数组

r - 如果任何其他变量为 NA,则设置新变量 NA

r - 如何使用 dplyr 分组进行统计测试,然后用扫帚制作 tibble

r - 堆叠条形图中每个条形的不同颜色 - 基础图形

c - 在 C 中动态创建一个 TYPE 数组

javascript - 如何使用 while 循环将数组值插入到 HTML 表中?

arrays - 过滤掉子数组中的条目

c - 在 C 中访问数组元素的不同方式

java - 在 java 代码中运行 R 脚本并将 r 结果输出到文本文件

r - 使用 stargazer 输出汇总统计数据