Хотя можно, конечно, использовать order
из базового пакета для работы с данными Я настоятельно рекомендую использовать пакет plyr
.
chr <- c(4,4,6,8,22,2)
start <- c(85, 23, 10, 25, 56, 15)
no <- c("non1", "non2", "non2", "non2", "non4", "non1")
myframe <- data.frame(chr, start, no)
создает вашу структуру данных. С точки зрения борьбы с колонкой символов:
myframe$chr <- as.numeric(myframe$chr)
, а затем получить скомпонованный версию очень просто:
library(plyr)
arrangedFrame <- arrange(myframe, chr, start)
print(arrangedFrame)
chr start no
1 2 15 non1
2 4 23 non2
3 4 85 non1
4 6 10 non2
5 8 25 non2
6 22 56 non4
есть также много легко модифицированных вариантов с использованием arrange
, которые делают различные переупорядочивания проще, чем используя order
. И пока я еще не использовал его, я знаю, что Хэдли выпустил dplyr
не так давно, который предлагает еще больше функциональности и который я бы рекомендовал вам проверить.
если ваши данные находятся в фрейме данных, попробуйте http://stackoverflow.com/questions/6769703/order-data-frame-by-two-columns-in-r – user2510479