Я не уверен, что принятый ответ правильный в тех случаях, когда сначала сортируется X, а затем Y сортируется по индексу (отсортированному) X, в том случае, если в X есть повторяющиеся значения, Y не всегда отсортировано в классическом стиле 'order by x, y'. Например:
> x <- c(3,2,2,2,1)
> y <- c(5,4,3,2,1)
> xind <- order(x)
> x[xind]
[1] 1 2 2 2 3
> y[xind]
[1] 1 4 3 2 5
Y - это , упорядоченный по новому порядку X, но не в шаге, так как не все индексы X изменились. Простая функция, необходимая для выполнения операции:
> sort.xy <- function(x,y)
+ {
+ df.xy <- data.frame(x,y)
+ df.xy[ order(df.xy[,1], df.xy[,2]), ]
+ }
Используется:
> c(sort.xy(x,y))
$x
[1] 1 2 2 2 3
$y
[1] 1 2 3 4 5