Упорядочить кадр данных по вектору с сохранением индексов

Допустим, у меня есть этот фрейм данных с именем result:

  id nobs
1 25  463
2 26  586
3 27  338
4 28  475
5 29  711
6 30  932

и этот вектор:

ord = c(30, 29, 28, 27, 26, 25)

Теперь я понимаю, что я могу упорядочить фрейм данных в соответствии с вектором ord, сделав это:

result[match(ord, result$id),]

чтобы получить следующий результат:

  id nobs
6 30  932
5 29  711
4 28  475
3 27  338
2 26  586
1 25  463

Однако, как вы можете видеть, индексы строк также были изменены (6,5,4..). Я хочу сохранить их, как и раньше (1,2,3...).

Как я могу это сделать?


person QuestionEverything    schedule 08.06.2015    source источник


Ответы (1)


Вы можете просто очистить имена строк после захвата нового фрейма данных:

res <- result[match(ord, result$id),]
row.names(res) <- NULL
res
#   id nobs
# 1 30  932
# 2 29  711
# 3 28  475
# 4 27  338
# 5 26  586
# 6 25  463
person josliber♦    schedule 08.06.2015