ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

R语言中order命令依据多列对数据框进行排序

2022-05-06 13:01:24  阅读:303  来源: 互联网

标签:多列 98 ## 76 scores 排序 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

 

标签:多列,98,##,76,scores,排序,order
来源: https://www.cnblogs.com/liujiaxin2018/p/16228270.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有