R软件中排序:sort(),rank(),order()
在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中有简单的函数可以直接利用,但是暂时还没有找到,以后碰到牛银再请求指点吧!
R软件中排序:sort(),rank(),order()的更多相关文章
- R软件中 文本分析安装包 Rjava 和 Rwordseg 傻瓜式安装方法四部曲
这两天,由于要做一个文本分析的内容,所以搜索了一天R语言中的可以做文本分析的加载包,但是在安装包的过程,真是被虐千百遍,总是安装不成功.特此专门写一篇博文,把整个心塞史畅快的释放一下. ------- ...
- R中sort(), rank(), order()
在R中,和排序相关的函数主要有三个:sort(),rank(),order(). sort(x)是对向量x进行排序,返回值排序后的数值向量.rank()是求秩的函数,它的返回值是这个向量中对应元素的“ ...
- R语言学习笔记(七): 排序函数:sort(), rank(), order()
sort() sort()函数直接对函数进行排序,并返回排序结果. > a <- c(12,4,6,5) > sort(a) [1] 4 5 6 12 rank() rank()函数 ...
- R排序sort、order、rank、arrange
Ø sort sort(x, decreasing = FALSE, ...) ## Default S3 method: sort(x, decreasing = FALSE, na.last = ...
- R语言 三个函数sort();rank();order()
R语言入门,弄懂了几个简单的函数,分享一下:R语言排序有几个基本函数: sort():rank():order()sort()是对向量进行从小到大的排序rank()返回的是对向量中每个数值对应的秩or ...
- oracle 分组中排序(rank函数)
需求: 查询每个供应商在每个类型产品销售的top50中有多少 分析: 1.查询,以指定字段(供应商.产品类型)分组,取每个分组的前50行,查看每个供应商的数量 2.使用rank函数给每个供应商.每个类 ...
- R语言排序 -- sort() order() rank()
order() 的返回值是对应“排名”元素所在向量中的位置.注意返回的不是元素本身,而是元素的位置. sort() 是直接对向量中的元素进行排序,返回的是排序后的元素组成的向量. rank() 是求秩 ...
- Java开发中使用sort排序
Java开发中使用sort排序 BaiduSpring https://baijiahao.baidu.com/s?id=1625440912158830354&wfr=spider& ...
- sort排序,按指定字段进去重,sort -t "^" -k 8 -su,ls给文件名中数字排序sort -k1.5n,Tab符要转义
sort sort 命令对 File 参数指定的文件中的行排序,并将结果写到标准输出.如果 File 参数指定多个文件,那么 sort 命令将这些文件连接起来,并当作一个文件进行排序. sort语法 ...
随机推荐
- Egret资源管理解决方案
关于egret开发H5页游,资源管理和加载的一点看法. 一 多json文件管理 二 资源归类和命名 三 exml文件编写规范 四 资源预加载.分步加载.偷载 五 资源文件group分组 六 ResUt ...
- 三维凸包求凸包表面的个数(HDU3662)
3D Convex Hull Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 最短路和次短路的条数(dijstra算法或spfa算法)POJ3463
http://poj.org/problem?id=3463 Sightseeing Time Limit: 2000MS Memory Limit: 65536K Total Submissio ...
- HDU Humble Numbers
Problem Description A number whose only prime factors are 2,3,5 or 7 is called a humble number. The ...
- 使用MySQLMTOP监控MySQL性能(二)
一.服务器角色 服务器角色 172.18.35.29 10.160.22.14 (MySQL Master) 10.160.22.47 (MySQL Slave) 监控点 YES NO NO 被监控点 ...
- SpringMVC Controller介绍及常用注解
一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...
- 《挑战程序设计竞赛》2.5 最小生成树 POJ3723 3169 1258 2377 2395 AOJ2224(1)
POJ3723 http://poj.org/problem?id=3723 题意 windy要组建一支军队,召集了N个女孩和M个男孩,每个人要付10000RMB,但是如果一个女孩和一个男孩有关系d的 ...
- Oracle卸载之linux快速卸载rac脚本-一键卸载
#!/bin/bash#Usage:Log on as the superuser('root') on node1,node2 cd /u01/app/11.2.0/grid/bin./crsctl ...
- Linux环境下proc的配置c/c++操作数据库简单示例
在虚拟机上装了oracle11g数据库,原本想利用c/c++学习操作数据库.结果感觉摊上了一个大坑.从安装好oracle数据库到配置好proc的编译选项整整花了二天.但让我意识到自己自己几点薄弱:1. ...
- HTML---初识HTML
版权声明:本文为博主原创文章.不经博主同意注明链接就可以转载. https://blog.csdn.net/Senior_lee/article/details/33723573 H ...