如何根据R中的组进行操作

时间:2016-01-07 20:45:20

标签: r sorting quantile

我有一个我作为样本创建的数据框

 v<-data.frame( g= c(sample(1:10, 8)))
 g<-data.frame( v= c(1,1,1,1,2,2,2,2))

 df<-cbind(g,v)
 df_s <-df[order(df$g,df$v,decreasing=TRUE),]

g列是一组常用值,比如说日期。我想按降序对每个g值进行排序,然后将它们放入五分位数或真正的n-tiles中 我有代码

df_s <-df[order(df$g,df$v,decreasing=TRUE),]

要对它进行排序,但输出不按预期顺序排列,请参阅下文。我想要

1,v high
1,v mid
1,v low
2,v high
2,v mid
2, v low

相反,我得到了这个。

v  g
8 2 10
2 1  9
5 2  8
3 1  6
7 2  5
4 1  4
6 2  2
1 1  1

感谢任何帮助。谢谢!

1 个答案:

答案 0 :(得分:2)

我们可以尝试

 df[order(df$v, -df$g),]

在OP的代码中,使用decreasing=TRUE,它会提供不同的顺序

 order(df$g,df$v,decreasing=TRUE)
 #[1] 3 5 2 6 1 4 7 8
 order(df$g,-df$v)
 #[1] 8 7 4 1 6 2 5 3

最好使用set.seed使示例可重现。