gpt4 book ai didi

r - 在 R 中转换 3D 数组中的表格

转载 作者:行者123 更新时间:2023-12-03 03:25:12 24 4
gpt4 key购买 nike

我有一个矩阵:

R> pippo.m
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12
[4,] 13 14 15 16
[5,] 17 18 19 20
[6,] 21 22 23 24

我想用 dim=(2,4,3) 将该矩阵转换为 3D 数组。通过 pippo.m 的转置,我能够获得类似的结果,但列和行旋转。

> pippo.t <- t(pippo.m)

> pippo.vec <- as.vector(pippo.t)

> pippo.arr <- array(pippo.vec,dim=c(4,2,3),dimnames=NULL)

> pippo.arr
, , 1
[,1] [,2]
[1,] 1 5
[2,] 2 6
[3,] 3 7
[4,] 4 8

, , 2
[,1] [,2]
[1,] 9 13
[2,] 10 14
[3,] 11 15
[4,] 12 16

, , 3
[,1] [,2]
[1,] 17 21
[2,] 18 22
[3,] 19 23
[4,] 20 24

实际上,我更愿意保持原始数据的相同分布,因为行和列代表经度和纬度,第三个维度是时间。所以我想获得这样的东西:

pippo.a 
, , 1
[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8


, , 2
[,1] [,2] [,3] [,4]
[1,] 9 10 11 12
[2,] 13 14 15 16


, , 3
[,1] [,2] [,3] [,4]
[1,] 17 18 19 20
[2,] 21 22 23 24

我该怎么办?

最佳答案

看看 aperm 的魔力!

m <- matrix(1:24,6,4,byrow = TRUE)
> aperm(array(t(m),c(4,2,3)),c(2,1,3))
, , 1

[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8

, , 2

[,1] [,2] [,3] [,4]
[1,] 9 10 11 12
[2,] 13 14 15 16

, , 3

[,1] [,2] [,3] [,4]
[1,] 17 18 19 20
[2,] 21 22 23 24

关于r - 在 R 中转换 3D 数组中的表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11581333/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com