0

我有一张像这样的桌子:

    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 
4

3 回答 3

0

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

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

有你想要的理由gumghm

于 2014-10-09T13:18:32.257 回答
0

只需添加另一个单行:

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

如果你想有它的data.frame格式,只需添加一个do.call(rbind,.).

于 2014-10-09T15:11:35.877 回答
-1

像这样的东西呢

> z = c('a', 'b', 'c', 'b', 'b', 'z','a')
> sort(table(z))
z
c z a b 
1 1 2 3 
> 
于 2014-10-09T13:16:22.330 回答