Вот мой пример dataframeR: Сортировка кадра данных на основе порядка вектора?
df <- data.frame(id=rep(c(123,456),each=5),col1=c(3,6,4,3,8,9,2,1,3,4),col2=c(7,8,5,4,6,8,7,5,8,3))
id col1 col2
1 123 3 7
2 123 6 8
3 123 4 5
4 123 3 4
5 123 8 6
6 456 9 8
7 456 2 7
8 456 1 5
9 456 3 8
10 456 4 3
desiredOrder <- rep(c(456,123),each=5)
И я хочу, чтобы отсортировать в соответствии с порядком, указанным в определенном векторе (desiredOrder), так что результат выглядит следующим образом:
id col1 col2
1 456 9 8
2 456 2 7
3 456 1 5
4 456 3 8
5 456 4 3
6 123 3 7
7 123 6 8
8 123 4 5
9 123 3 4
10 123 8 6
(так строки, в которых идентификатор = 456 получили поднялся выше строк, где идентификатор = 123, но исходный порядок строк сохранились)
Я пробовал:
df[match(df$id,desiredOrder),]
Однако результат весьма далек от того, что я после:
id col1 col2
6 456 9 8
6.1 456 9 8
6.2 456 9 8
6.3 456 9 8
6.4 456 9 8
1 123 3 7
1.1 123 3 7
1.2 123 3 7
1.3 123 3 7
1.4 123 3 7
Просто ради простого примера я поместил столбец ID в порядке возрастания и решение имеет столбец ID в по убыванию ... но в реальной жизни идентификатор не в порядке возрастания. Мне нужен порядок столбца идентификатора, который должен быть указан в векторе (желаемый ордер). Извините, вопрос не очень ясен. Я исправлю его сейчас. – HollowBastion
@HollowBastion Обновлено сообщение. – akrun