供参考,Order color based on Hue, Saturation, Value in R
我知道sort
将返回排序的数据帧,而order
将返回元素的位置(如果已订购)。
什么是相似的矩阵函数
我可以对矩阵进行排序,但是我想知道元素是否经过排序
> tHSVcol
h s v
[1,] 0.6229508 0.6421053 0.3725490
[2,] 0.2767296 0.5145631 0.8078431
[3,] 0.1323283 0.7928287 0.9843137
[4,] 0.9790476 0.9510870 0.7215686
[5,] 0.9093567 0.5480769 0.4078431
> tHSVcol[order(tHSVcol[,1])]
[1] 0.1323283 0.2767296 0.6229508 0.9093567 0.9790476
我正在寻找的功能应该返回。请指教
> ???
[1] 3 2 1 5 4
答案 0 :(得分:3)
一个选项是rank
rank(tHSVcol[,1])
#[1] 3 2 1 5 4
tHSVcol <- structure(c(0.6229508, 0.2767296, 0.1323283, 0.9790476, 0.9093567,
0.6421053, 0.5145631, 0.7928287, 0.951087, 0.5480769, 0.372549,
0.8078431, 0.9843137, 0.7215686, 0.4078431), .Dim = c(5L, 3L), .Dimnames = list(
NULL, c("h", "s", "v")))
答案 1 :(得分:2)
match()
和sort()
的组合将得到您想要的:
mat <- matrix(9:1, 3,3, byrow = TRUE)
match(sort(mat[,1]), mat[,1])
3 2 1