我是R的新手,这是我的第一个问题(如果提出的问题是错误的,请道歉)。
我想根据多维数组中“窗口”的列,相应地改变行的顺序。
这是一个简化的例子:
x1<-matrix(c(1,3,2,4), 2)
x1
[,1] [,2]
[1,] 1 2
[2,] 3 4
x2<-matrix(c(7,5,8,6),2)
x2
[,1] [,2]
[1,] 7 8
[2,] 5 6
x3<-array(c(x1,x2), dim = c(2,2,2))
然后我想重新安排数组的第一个“窗口”,使它像x4一样:
x4<-x1[order(x1[,1], decreasing = TRUE),]
x4
[,1] [,2]
[1,] 3 4
[2,] 1 2
我怎样才能在数组中做到这一点? 另外,更改是否也会影响阵列中的所有其他“窗口”? 所以,最后,我将得到一个像这样的数组:
x3[,,1]
[,1] [,2]
[1,] 3 4
[2,] 1 2
x3[,,2]
[,1] [,2]
[1,] 5 6
[2,] 7 8
非常感谢!
答案 0 :(得分:0)
您正在尝试重新排序数组的行(第一维);它类似于重新排序矩阵的行,除了它是3d,因此您需要指定三个索引:
x3[order(x3[,2,1], decreasing = T),,]
#, , 1
# [,1] [,2]
#[1,] 3 4
#[2,] 1 2
#, , 2
# [,1] [,2]
#[1,] 5 6
#[2,] 7 8