按第一个坐标对对进行排序

时间:2014-12-04 13:40:59

标签: r

我有以下向量:

X<-c(140,140,130,109,124,114,65,162,150,0)
Y<-c(30.65,6.45,17.74,11.29,3.23,3.23,3.23,8.06,14.52,1.61)

我想要做的是将X中的每个条目分配给Y中的相应条目,然后按X排序。例如,如果我有

J<-c(10,40,20)
K<-c(9,9,2)

我希望它能给我

Jo = (10,20,40)
Ko = (9,2,9)

我如何在R中执行此操作?谢谢你的帮助。

1 个答案:

答案 0 :(得分:3)

使用order()功能:

X <- c(140,140,130,109,124,114,65,162,150,0)
Y <- c(30.65,6.45,17.74,11.29,3.23,3.23,3.23,8.06,14.52,1.61)
ord <- order(X)
(X2 <- X[ord])
##  [1]   0  65 109 114 124 130 140 140 150 162
(Y2 <- Y[ord])
##  [1]  1.61  3.23 11.29  3.23  3.23 17.74 30.65  6.45 14.52  8.06

(如果您先重新订购Y,则不需要保存ord;可以使用Y2 <- Y[order(X)]; X2 <- sort(X)代替。