gpt4 book ai didi

arrays - 从 R 中的数据框创建三维数组

转载 作者:行者123 更新时间:2023-12-02 01:33:26 28 4
gpt4 key购买 nike

我有一个包含 3600 行和 800 列的 2D 数据帧中的雷达数据,我需要将其转换为包含 10 行、360 列和 800 级的 3D 数组。我需要将 3600 行拆分为 10 组 360,并将 800 列转换为新数组的级别。所以,而不是-

> dim(REF)
[1] 3600 800

我需要将值放入表单中-

> dim(ref.array)
[1] 10 360 800

我知道这是一个非常基本的要求,但我记不太清了,因为自从我两年前上这门课以来我就没怎么用过 R。任何帮助将不胜感激。

编辑以回答以下问题。

如果我们以@BondedDust 使用的示例为例,我们将得到以下结果-

d <- as.data.frame( matrix( 1:(3*4*5), 12, 5))
array( unlist(d), dim=c(3, 4, 5) )

, , 1

[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

, , 2

[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24

, , 3

[,1] [,2] [,3] [,4]
[1,] 25 28 31 34
[2,] 26 29 32 35
[3,] 27 30 33 36

, , 4

[,1] [,2] [,3] [,4]
[1,] 37 40 43 46
[2,] 38 41 44 47
[3,] 39 42 45 48

, , 5

[,1] [,2] [,3] [,4]
[1,] 49 52 55 58
[2,] 50 53 56 59
[3,] 51 54 57 60

我正在寻找的是这样组织的数组-

, , 1

[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12

, , 2

[,1] [,2] [,3] [,4]
[1,] 13 14 15 16
[2,] 17 18 19 20
[3,] 21 22 23 24

, , 3

[,1] [,2] [,3] [,4]
[1,] 25 26 27 28
[2,] 29 30 31 32
[3,] 33 34 35 36

, , 4

[,1] [,2] [,3] [,4]
[1,] 37 38 39 40
[2,] 41 42 43 44
[3,] 45 46 47 48

, , 5

[,1] [,2] [,3] [,4]
[1,] 49 50 51 52
[2,] 53 54 55 56
[3,] 57 58 59 60

最佳答案

这样不行吗?

 new.arr <- array( unlist(dfrm), dim=c(10, 360, 800) ) )

这就是我所理解的任务,但如果不是,那么 'aperm' 包中有一个 aperm 函数将允许“置换”维度:

d <- as.data.frame( matrix( 1:(3*4*5), 12, 5))
array( unlist(d), dim=c(3, 4, 5) )

##=========result============##
, , 1

[,1] [,2] [,3] [,4]
[1,] 1 4 7 10
[2,] 2 5 8 11
[3,] 3 6 9 12

, , 2

[,1] [,2] [,3] [,4]
[1,] 13 16 19 22
[2,] 14 17 20 23
[3,] 15 18 21 24

, , 3
snipped rest of output

既然现在很清楚您确实想要 byrow=TRUE 的数组等效项(这不是 R 数组函数中的一个选项),那么这提供了所需的结果:

 aperm( array( unlist(d), dim=c(4, 3, 5) ) , c(2,1,3) )
#===============
, , 1

[,1] [,2] [,3] [,4]
[1,] 1 2 3 4
[2,] 5 6 7 8
[3,] 9 10 11 12

, , 2

[,1] [,2] [,3] [,4]
[1,] 13 14 15 16
[2,] 17 18 19 20
[3,] 21 22 23 24

Snipped rest of output.

我误以为 aperm 在不同的包中。

关于arrays - 从 R 中的数据框创建三维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32766990/

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