R 使数组有序

R 使数组有序,r,R,我想对每个楼层数组(每个楼层独立)的值从最大值到最小值进行排序和转换,如本例所示: #My array: a1 <- array(c(1,-4,13,0,1,0,-17,12,14,9,-3,-3),dim = c(2,3,4)) a1 , , 1 [,1] [,2] [,3] [1,] 1 13 1 [2,] -4 0 0 , , 2 [,1] [,2] [,3] [1,] -17 14 -3 [2,] 12

我想对每个楼层数组(每个楼层独立)的值从最大值到最小值进行排序和转换,如本例所示:

#My array:
a1 <- array(c(1,-4,13,0,1,0,-17,12,14,9,-3,-3),dim = c(2,3,4))
a1
, , 1

      [,1] [,2] [,3]
[1,]    1   13    1
[2,]   -4    0    0

, , 2

     [,1] [,2] [,3]
[1,]  -17   14   -3
[2,]   12    9   -3

, , 3

     [,1] [,2] [,3]
[1,]    1   13    1
[2,]   -4    0    0

, , 4

      [,1] [,2] [,3]
[1,]  -17   14   -3
[2,]   12    9   -3
例如,如果我这样做:

 a2[]<-factor(-a1)
a2[]在三维上使用
apply()
,并使用
c()
删除因子的属性。如果不强制因子为整数,那么矩阵将自动强制为字符

a1[] <- apply(a1, 3, function(x) c(factor(-x)))
在第三维度上使用
apply()
,并使用
c()
删除因子的属性。如果不强制因子为整数,那么矩阵将自动强制为字符

a1[] <- apply(a1, 3, function(x) c(factor(-x)))

使用
apply
和你提到的函数。使用
apply
和你提到的函数。如果你不介意Richard,a1[]在这里是什么意思,我原以为它意味着创建一个名为a1[]的数组,但我厌倦了a2[],它抱怨对象“a2”不存在?它假设对象已经存在,所以它不能意味着创建a1[]。我不是following@user3507767-它替换
a1
中的值。如果您不想这样做,可以执行
a2@user3507767具体来说,
[]
是一个保持
a1
的现有维度不变并仅替换值的技巧。如果你去掉
[]
代码会运行,但你可能会得到一个没有任何行、列等的向量。如果你不介意Richard,a1[]在这里是什么意思,我原以为它意味着创建一个名为a1[]的数组,但我用a2[]代替它,它抱怨对象“a2”不存在?它假设对象已经存在,所以它不能意味着创建a1[]。我不是following@user3507767-它替换
a1
中的值。如果您不想这样做,可以执行
a2@user3507767具体来说,
[]
是一个保持
a1
的现有维度不变并仅替换值的技巧。如果去掉
[]
,代码将运行,但最终可能会得到一个没有任何行、列等的向量。
, , 1

     [,1] [,2] [,3]
[1,]    2    1    2
[2,]    4    3    3

, , 2

     [,1] [,2] [,3]
[1,]    5    1    4
[2,]    2    3    4

, , 3

     [,1] [,2] [,3]
[1,]    2    1    2
[2,]    4    3    3

, , 4

     [,1] [,2] [,3]
[1,]    5    1    4
[2,]    2    3    4