r - 绑定数组的维度
问题描述
让我们从一个示例性多维数组开始,例如
a <- array(1:24, dim = c(3, 2, 2, 2)); a
, , 1, 1
[,1] [,2]
[1,] 1 4
[2,] 2 5
[3,] 3 6
, , 2, 1
[,1] [,2]
[1,] 7 10
[2,] 8 11
[3,] 9 12
, , 1, 2
[,1] [,2]
[1,] 13 16
[2,] 14 17
[3,] 15 18
, , 2, 2
[,1] [,2]
[1,] 19 22
[2,] 20 23
[3,] 21 24
现在我想将前两个维度(剩余维度 3 和 4 上的矩阵)cbind 或 rbind 绑定到整个 data.frame。
使用 rbind 生成的 data.frame 应该是这样的:
[,1] [,2]
[1, ] 1 4
[2, ] 2 5
[3, ] 3 6
[4, ] 7 10
[5, ] 8 11
[6, ] 9 12
...
将多维数组的前两个维度绑定到像 data.frame 这样的整个结构的有效方法是什么?请考虑该数组可以具有大于 2 的任意维数,而不仅仅是上面给出的示例中的 4。
提前致谢
解决方案
置换和修改维度非常有效:
a <- array(1:24, dim = c(3, 2, 2, 2))
a <- aperm(a, c(2, 1, 3, 4))
dim(a) <- c(dim(a)[1], prod(dim(a)[-1]))
t(a)
# [,1] [,2]
# [1,] 1 4
# [2,] 2 5
# [3,] 3 6
# [4,] 7 10
# [5,] 8 11
# [6,] 9 12
# [7,] 13 16
# [8,] 14 17
# [9,] 15 18
#[10,] 19 22
#[11,] 20 23
#[12,] 21 24
推荐阅读
- python - Discord.py 机器人状态未显示
- reactjs - 如何覆盖主题中的材质ui阴影
- php - 条纹 JS 元素在 WooCommerce Checkout 中消失
- python - QPainter中重叠的半透明QRectangles
- java - 如何从 Nexus 导入 Maven 依赖项
- html - 启用调整弹出窗口的大小
- ios - 添加 firebase_messaging 包后 Flutter 应用程序无法运行
- node.js - 实体之间的循环依赖
- python - 如何将网站内容转换为 CSV(python)?
- azure - Azure vnet 非传递路由和 NVA