用R中的另一个向量排序两个向量

时间:2014-02-28 19:51:24

标签: r

我有两个向量X和Y.所以我想按升序排序X并将X与对应的Y对。这里X和Y具有相同数量的元素。

有任何帮助吗?感谢。

2 个答案:

答案 0 :(得分:5)

您可以使用order,例如:

X <- c(1,4,2,4,5)
Y <- c(9,3,2,3,4)
X.sorted <- X[order(X)]
Y.sorted <- Y[order(X)]

答案 1 :(得分:1)

双胞胎的回答应该有效。一个建议(我评论,但我的代表太低了)是,如果向量非常大,存储订单可能更有效,而不是计算两次:

i = order(X)
X.sorted = X[i]
Y.sorted = Y[i]
rm(i)              #clean up

(我不确定R是如何缓存函数结果的,如果有的话,但是即使使用twin的代码,R也可能在内部执行此操作。)

听起来您可能希望这些数据向量更明确地链接,在这种情况下,将其编码并将其作为单个数据框处理可能是一种好习惯:

d = data.frame(X=X,Y=Y)
d.sorted = d[order(d$X),]