根据其他

时间:2017-04-11 08:41:41

标签: r sorting

我有2个载体,

x <- c (1,4,6,7,9,2)
y <- c (2,6,5,1,8,9)

我想对x和y进行排序。 y取决于x。我想要的结果是

x = (1,2,4,6,7,9)
y = (2,9,6,5,1,8)

我知道我可以将x排序索引为

sort(x, index.return=TRUE)$ix

如何对矢量y进行排序?

2 个答案:

答案 0 :(得分:3)

我们可以将其用作索引

i1 <- sort(x, index.return=TRUE)$ix

order

i1 <- order(x)
x[i1]
#[1] 1 2 4 6 7 9

y[i1]
#[1] 2 9 6 5 1 8

答案 1 :(得分:3)

您正在寻找order()。它根据向量中的值生成索引。使用此索引,您可以对y向量

进行排序
y[order(x)]
# [1] 2 9 6 5 1 8

但是,请确保向量具有相同的长度。否则将生成NA s

x <- c (1,4,6,7,9,2,3)
y <- c (2,6,5,1,8,9)
y[order(x)]
# [1]  2  9 NA  6  5  1  8

或某些值将丢失

x <- c (1,4,6,7,9,2)
y <- c (2,6,5,1,8,9,3)
y[order(x)]
# [1] 2 9 6 5 1 8