假设我有两个向量;我想按 y 对 x 进行排序,以便它们相互依赖:
> x
[1] 1 5 2
> y
[1] 4 5 1
我想要 y 的结果是1,5,4
;y 的最小值排在第一位,因为 x 的最小值排在第一位。
另一个例子是
> x
[1] 1 5 7 3 4 2
> y
[1] 4 5 6 2 6 8
> sort(y)[order(x)]
[1] 2 8 6 6 4 5
上面的解决方案似乎不起作用,因为 x 中的最大值在第三位,但排序 y 中的最大值在第三位。
我们可以用 rank
sort(y)[rank(x)]
[1] 1 5 4
sort(y1)[rank(x1)]
[1] 2 6 8 5 6 4
或者order
在order
> sort(y)[order(order(x))]
[1] 1 5 4
> sort(y1)[order(order(x1))]
[1] 2 6 8 5 6 4
x <- c(1, 5, 2)
y <- c(4, 5, 1)
x1 <- c(1, 5, 7, 3, 4, 2)
y1 <- c(4, 5, 6, 2, 6, 8)
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句