我有一个我作为样本创建的数据框
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
感谢任何帮助。谢谢!
答案 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
使示例可重现。