Как отсортировать фрейм данных в R с сохранением указанного порядка столбцов?

Допустим, у меня есть data.frame

x <- data.frame(a = c('A','A','A','A','A', 'C','C','C','C', 'B','B','B'),
                b = c('a','c','a','a','c', 'd', 'e','e','d', 'b','b','b'),
                c = c( 7,  3,  2,  4,  5,   3,   1,  1,  5,   5,  2,  3),
                stringsAsFactors = FALSE)

> x
   a b c
1  A a 7
2  A c 3
3  A a 2
4  A a 4
5  A c 5
6  C d 3
7  C e 1
8  C e 1
9  C d 5
10 B b 5
11 B b 2
12 B b 3

Я хотел бы отсортировать x по столбцам b и c, но сохраняя порядок a, как и раньше. x [order (x $ b, x $ c),] - нарушает порядок столбца a. Вот что я хочу:

   a b c
3  A a 2
4  A a 4
1  A a 7
2  A c 3
5  A c 5
6  C d 3
9  C d 5
7  C e 1
8  C e 1
11 B b 2
12 B b 3
10 B b 5

Есть быстрый способ сделать это?

В настоящее время я запускаю цикл for и сортирую каждое подмножество, я уверен, что должен быть лучший способ.

Спасибо! Я уверен, что должен быть способ получше.

Спасибо! Я уверен, что должен быть способ получше.

Спасибо! Илья

7
задан Joris Meys 12 November 2010 в 16:00
поделиться