R软件中排序:sort(),rank(),order()
来源:互联网 发布:知有陈迹而不知有今务 编辑:程序博客网 时间:2024/06/06 21:03
在R中,和排序相关的函数主要有三个:sort(),rank(),order()。
sort(x)是对向量x进行排序,返回值排序后的数值向量。rank()是求秩的函数,它的返回值是这个向量中对应元素的“排名”。而order()的返回值是对应“排名”的元素所在向量中的位置。
下面以一小段R代码来举例说明:
> x<-c(97,93,85,74,32,100,99,67)
> sort(x)
[1] 32 67 74 85 93 97 99 100
> order(x)
[1] 5 8 4 3 2 1 7 6
> rank(x)
[1] 6 5 4 3 1 8 7 2
假设x为一组学生完成某项测试所花费的时间(所用时间越短,排名越靠前),rank()的返回值是这组学生所对应的排名,而order()的返回值是各个排名的学生成绩所在向量中的位置。
前一段同学问我一个问题,如何返回一个数值向量中满足某条件的元素在向量中的位置?举例来说,x<-c(97,93,85,74,32,100,99,67),希望返回x中满足值大于50且小于90的元素在向量x中的下标。当时想了想,没觉得有什么好的方法,使用了比较繁琐的语句
sort(x,index.return=TRUE)[[2]][sort(x,index.return=TRUE)[[1]]<90&sort(x,index.return=TRUE)[[1]]>50],后来发现sort(x,index.return=TRUE)[[2]]和order(x)的返回值是一样的,而sort(x,index.return=TRUE)[[1]]和sort(x)的返回值是相同的,因此语句可以简化为order(x)[sort(x)>50&sort(x)<90]。下面是相关的R代码:
> x
[1] 97 93 85 74 32 100 99 67
> sort(x,index.return=TRUE)[[2]][sort(x,index.return=TRUE)[[1]]<90&sort(x,index.return=TRUE)[[1]]>50]
[1] 8 4 3
> order(x)[sort(x)>50&sort(x)<90]
[1] 8 4 3
> sort(x,index.return=TRUE)
$x
[1] 32 67 74 85 93 97 99 100
$ix
[1] 5 8 4 3 2 1 7 6
> order(x)
[1] 5 8 4 3 2 1 7 6
或许还有更加方便的方法,比如R中有简单的函数可以直接利用,但是暂时还没有找到,以后碰到牛银再请求指点吧!
> x<-c(97,93,85,74,32,100,99,67)
> sort(x)
[1]
> order(x)
[1] 5 8 4 3 2 1 7 6
> rank(x)
[1] 6 5 4 3 1 8 7 2
sort(x,index.return=TRUE)[[2]][sort(x,index.return=TRUE)[[1]]<90&sort(x,index.return=TRUE)[[1]]>50],后来发现sort(x,index.return=TRUE)[[2]]和order(x)的返回值是一样的,而sort(x,index.return=TRUE)[[1]]和sort(x)的返回值是相同的,因此语句可以简化为order(x)[sort(x)>50&sort(x)<90]。下面是相关的R代码:
> x
[1]
> sort(x,index.return=TRUE)[[2]][sort(x,index.return=TRUE)[[1]]<90&sort(x,index.return=TRUE)[[1]]>50]
[1] 8 4 3
> order(x)[sort(x)>50&sort(x)<90]
[1] 8 4 3
> sort(x,index.return=TRUE)
$x
[1]
$ix
[1] 5 8 4 3 2 1 7 6
> order(x)
[1] 5 8 4 3 2 1 7 6
0 0
- R软件中排序:sort(),rank(),order()
- R-排序order(),sort(),rank()
- R: 数据排序函数 sort(), rank(), order()
- R语言排序函数sort(),rank(),order()
- R:sort(),rank(),order()
- R语言和Python中sort(),rank()和order()的各自区别(默认都是升序)
- R中rank函数使用
- R软件中数据的排序
- JS 中sort()排序
- C++中sort排序
- ORACLE中排序ORDER BY
- python 中Wilcoxon rank-sum 和 R 中的 wilcox.test
- java中Collections.sort排序
- javascript中sort方法排序
- java中Collections.sort排序
- Hive中Order by和Sort by的区别是什么?
- hive中order by 和sort by与distribute by
- hive 中order by 与 sort by 的区别
- 再探MFC(六)状态栏
- 网络蜘蛛爬虫 Scrapy - 简介&Demo
- ANDROID_HOME is not set and "android" command not
- C/C++使用ODBC连接Microsoft SQL server数据库
- 自定义类加载器卸载后重新加载类 static 再次调用
- R软件中排序:sort(),rank(),order()
- arcgis10.1安装 desktop server sde安装网址
- 编程思想-复用类
- 单目录下多文件 makefile编写
- leetcode:Rotate Array
- 深入理解JVM____JVM运行时内存结构
- 从send函数和sendto函数参数的不同看TCP和UDP的差别
- RMQ 问题之Sparse_Table算法
- 二分查找