【发布时间】:2017-04-11 16:55:42
【问题描述】:
我有 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 个向量,
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 进行排序?
【问题讨论】:
我们可以用它作为索引
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
【讨论】:
您正在寻找order()。它根据向量中的值生成索引。使用此索引,您可以对 y 向量进行排序
y[order(x)]
# [1] 2 9 6 5 1 8
但是,请确保向量具有相同的长度。否则会生成NAs
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
【讨论】: