2014-10-09 2 views
0

У меня есть таблица, как:Сортировка R строк на основе количества повторений

me mine  
1 z  ghm  
2 d  gwm 
3 d  gom 
4 d  gum 
5 f  gom 
6 g  gum 
7 h  gom 
8 t  ghm 
9 y  gom 
10 u  gom 

как можно сортировать эти данные основаны на повторении в шахте clumn, обратите внимание: все начинается с «г» и заканчиваться «м». результат им ищет, как»

 me mine  
1 d  gom  
2 f  gom 
3 h  gom 
4 y  gom 
5 u  gom 
6 d  gum 
7 g  gum 
8 t  ghm 
9 z  ghm 
10 d  gwm 

или Somthing как это:

gom d,f,h,y,u  
gum d,g,  
ghm t,z  
gwm  z,d 

ответ

-1

А что-то вроде этого

> z = c('a', 'b', 'c', 'b', 'b', 'z','a') 
> sort(table(z)) 
z 
c z a b 
1 1 2 3 
> 
0

Попробуйте (df это ваш data.frame):

indices<-match(df$mine,names(sort(table(df$mine),decreasing=TRUE))) 
    df[order(indices,df$me),] 

является причиной, по которой вы хотите gum до ghm?

0

Просто, чтобы добавить еще один вкладыш:

split(df, df$mine)[order(sapply(split(df, df$mine), NROW), decreasing = TRUE)] 

Если вы хотите иметь его в формате data.frame, просто добавить do.call(rbind,.).

Смежные вопросы