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