2013-11-09 2 views
0

Я хочу отсортировать кадр по двум столбцам, один из которых является числовым, а другой - столбцом факторов.R: Сортировка кадров по двум столбцам с коэффициентами

Пример:

Values Size  Length 
1  "Small"  10 
2  "Big"  6 
3  "Small"  30 
4  "Medium"  22 
5  "Very Small" 17 
6  "Small"  16 

Я знаю, как командовать двумя колоннами:

myFrame <- myFrame[order(myFrame$Size,myFrame$Length)] 

Однако, я хочу, чтобы отсортировать столбец Размер от "Very Small" до "Small" к "Medium" в "Big", а не только по алфавиту ,

Результат должен выглядеть следующим образом:

Values Size   Length 
5  "Very Small" 17 
1  "Small"  10 
3  "Small"  30 
6  "Small"  16 
4  "Medium"  22 
2  "Big"   6 

Как отсортировать массив данных по фактор колонки?

+0

Привет! Добро пожаловать в Stackoverflow. Я не тот, кто проголосовал за этот вопрос, но я хотел бы привести несколько причин, почему вопрос был отклонен. Данные, которые вы предоставили, трудно было прочитать прямо в R, и вы не указали, что вы пытались, прежде чем задавать вопрос. Мнение делится на _how much_ работу, которую вам нужно показать, но по первой причине посмотрите на это _FAQ_, чтобы предоставить более качественные данные в своих более поздних вопросах: http://stackoverflow.com/questions/5963269/how-to-make- a-great-r-воспроизводимый пример. Я лично считаю, что это хороший вопрос, продолжайте спрашивать! :) –

ответ

1

Вы можете преобразовать Size столбец в ordered factor list:

> d <- read.table(header=T, text=' Values Size  Length 
+  1  "Small"  10 
+  2  "Big"  6 
+  3  "Small"  30 
+  4  "Medium"  22 
+  5  "Very Small" 17 
+  6  "Small"  16') 

> d$Size <- factor(d$Size, levels=c("Very Small", "Small", "Medium", "Big")) 
> d[order(d$Size), ] 
    Values  Size Length 
5  5 Very Small  17 
1  1  Small  10 
3  3  Small  30 
6  6  Small  16 
4  4  Medium  22 
2  2  Big  6 
Смежные вопросы