R语言中order命令依据多列对数据框进行排序
1、问题
> x <- c(1, 3, 2, 1, 2, 3) > y <- c(5, 7, 6, 8, 9, 6) > order(x) ## 返回了排序的索引 [1] 1 4 3 5 2 6 > order(y) [1] 1 3 6 2 4 5 > order(x, y) ## 当向量x相同时,此时再依据y向量进行排序,即优先x排序,当x相同时,依据y排序, 当x为3时,此时y向量的6小于7,因此返回索引6. [1] 1 4 3 5 6 2 > order(y, x) ## 先y后x [1] 1 3 6 2 4 5
2、实例
> name <- c('James','John','Luka','Green','Lisa','Curry','Jimmy','Xiaojie') > R_scores <- c(88,68,76,76,93,76,98,98) > Linux_scores <- c(78,63,76,82,81,63,92,95) > scores <- data.frame(name=name,R_scores=R_scores,Linux_scores=Linux_scores) > scores ## 测试数据框 name R_scores Linux_scores 1 James 88 78 2 John 68 63 3 Luka 76 76 4 Green 76 82 5 Lisa 93 81 6 Curry 76 63 7 Jimmy 98 92 8 Xiaojie 98 95 > scores[order(scores$R_scores),] ## 依据第二列进行排序 name R_scores Linux_scores 2 John 68 63 3 Luka 76 76 4 Green 76 82 6 Curry 76 63 1 James 88 78 5 Lisa 93 81 7 Jimmy 98 92 8 Xiaojie 98 95 > scores[order(scores$R_scores, scores$Linux_scores),] ## 优先依据第2列排序,当第二列有相同项时,再依据第三列进行排序 name R_scores Linux_scores 2 John 68 63 6 Curry 76 63 3 Luka 76 76 4 Green 76 82 1 James 88 78 5 Lisa 93 81 7 Jimmy 98 92 8 Xiaojie 98 95
出处:https://mp.weixin.qq.com/s?__biz=MzAxMDkxODM1Ng==&mid=2247513582&idx=2&sn=77228bc56c3411e84afa457ff14425c4&chksm=9b4bf555ac3c7c434fa9c0cfe7d16744d6a361b3827aa930dbd334c36bc5d96336347067743e&mpshare=1&scene=23&srcid=0505TCPhIaQDpxUIBnPgUYtG&sharer_sharetime=1651685667859&sharer_shareid=50b75c6a886e09824b582fb782a7678b#rd
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
2021-05-06 c语言 6-1
2021-05-06 第一个java程序
2021-05-06 c语言中自定义函数计算x的n次方
2021-05-06 c语言中while语句控制程序循环的次数