根据重复次数对R行进行排序

时间:2014-10-09 13:10:13

标签: r sorting rep

我有一张表:

    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中的重复对这些数据进行排序,注意:所有数据都以“g”开头,以“m”结尾。我正在寻找的结果就像“

     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

或者像这样:

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

3 个答案:

答案 0 :(得分:0)

试试这个(df是你的data.frame):

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

gum之前,您需要ghm吗?

答案 1 :(得分:0)

只是添加另一个单行:

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

如果您想要data.frame格式,只需添加do.call(rbind,.)

答案 2 :(得分:-1)

那样的事情

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