R語言中同時對數據框的多列進行排序


 

1、測試數據

> a <- c(3,2,2,2,2,2,9,1,4) > b <- c(7,8,4,4,4,6,5,2,3) > c <- c(3,5,7,4,3,2,1,8,6) > d <- data.frame(a, b, c) > d a b c 1 3 7 3
2 2 8 5
3 2 4 7
4 2 4 4
5 2 4 3
6 2 6 2
7 9 5 1
8 1 2 8
9 4 3 6

 

2、按照a列進行排序

> d[order(d$a),] a b c 8 1 2 8
2 2 8 5
3 2 4 7
4 2 4 4
5 2 4 3
6 2 6 2
1 3 7 3
9 4 3 6
7 9 5 1

 

2、對a列進行降序排列

> d[order(d$a,decreasing = T),] a b c 7 9 5 1
9 4 3 6
1 3 7 3
2 2 8 5
3 2 4 7
4 2 4 4
5 2 4 3
6 2 6 2
8 1 2 8

 

3、先按照a列進行排序,再按照b列進行排序

> order(d$a) [1] 8 2 3 4 5 6 1 9 7
> order(d$a,d$b) [1] 8 3 4 5 6 2 1 9 7
> d[order(d$a,d$b),] a b c 8 1 2 8
3 2 4 7
4 2 4 4
5 2 4 3
6 2 6 2
2 2 8 5
1 3 7 3
9 4 3 6
7 9 5 1

 

4、對a、b列同時進行降序排列

> d[order(-d$a,-d$b),] a b c 7 9 5 1
9 4 3 6
1 3 7 3
2 2 8 5
6 2 6 2
3 2 4 7
4 2 4 4
5 2 4 3
8 1 2 8

 

5、對a升序,b降序驚醒排列

> d[order(d$a,-d$b),] a b c 8 1 2 8
2 2 8 5
6 2 6 2
3 2 4 7
4 2 4 4
5 2 4 3
1 3 7 3
9 4 3 6
7 9 5 1

 

6、一次按照a、b、c列進行排序

> d[order(d$a,d$b,d$c),] a b c 8 1 2 8
5 2 4 3
4 2 4 4
3 2 4 7
6 2 6 2
2 2 8 5
1 3 7 3
9 4 3 6
7 9 5 1

 

7、對a、b、降序 c升序排列

> d[order(-d$a,-d$b,d$c),] a b c 7 9 5 1
9 4 3 6
1 3 7 3
2 2 8 5
6 2 6 2
5 2 4 3
4 2 4 4
3 2 4 7
8 1 2 8

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM