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
复制代码

 

posted @   小鲨鱼2018  阅读(3162)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
点击右上角即可分享
微信分享提示