假设一个矩阵:
> a <- matrix(c(100, 90, 80, 20), 2, 2)
> a
[,1] [,2]
[1,] 100 80
[2,] 90 20
假设我想将矩阵的元素转换为等级:
>rank.a <- rank(a)
> rank.a
[1] 4 3 2 1
这将返回一个向量,即矩阵结构丢失。是否可以对矩阵进行排序,使得输出的形式为:
[,1] [,2]
[1,] 4 2
[2,] 3 1
@EDi 答案的替代方法是复制a
然后分配输出rank(a)
直接进入副本的元素a
:
> a <- matrix(c(100, 90, 80, 20), 2, 2)
> rank.a <- a
> rank.a[] <- rank(a)
> rank.a
[,1] [,2]
[1,] 4 2
[2,] 3 1
这样您就不必通过询问输入矩阵的维度来重建矩阵。
请注意(正如@Andrie在评论中提到的)复制a
仅当想保留原件时才需要a
。需要注意的主要一点是,因为a
已经具有适当的维度,我们可以将其视为向量并替换a
的向量为a
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)