我有一张表:
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
答案 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
>