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 7485 93 97 99100
>order(x)
[1] 5 8 4 3 2 1 76
>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 8574 32 100 9967
>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 7485 93 97 99100
$ix
[1] 5 8 4 3 2 1 76
>order(x)
[1] 5 8 4 3 2 1 7 6
或许还有更加方便的方法,比如R中有简单的函数可以直接利用,但是暂时还没有找到,以后碰到牛银再请求指点吧!
更多阅读
手机中病毒怎么办,手机中病毒了怎么清除 手机中病毒了怎么清除
手机中病毒怎么办,手机中病毒了怎么清除——简介手机中病毒怎么办,手机中病毒了怎么清除。随着用手机的用户增多,问题也就跟着而来,下面我就来说下手机中病毒怎么办,手机中病毒了怎么清除。手机中病毒怎么办,手机中病毒了怎么清除——方
转载 易中天先生,这叫险恶 险恶先生
有趣原文地址:易中天先生,这叫险恶作者:丁启阵口臭与心恶丁启阵我一直以为易中天先生是个水平线以上的学者(孔庆东现在还说易中天“才学还不错”)。但是,他近日发表在博客中的《论孔庆东不是王八蛋》一文(易中天新浪博客2012-01-2100:41:
彩哥8免费3D胆码预测软件正式出炉,准确率百分之八十 准确率 召回率
好不容易啊!!!彩哥8免费3D胆码预测软件正式出炉,准确率百分之八十下载连接地址:http://d.119g.com/f/339D104FA7AA1EE5.html
中美博弈,中华家必胜的八个原因:xiniqi198259|2014-06-26
中美博弈,中华家必胜的八个原因!(2014-06-26)最近这几天,许多网友都觉得我对中美博弈的分析太过乐观,对于这种看法,我不否认,不过,我的“乐观”可是有原因的,今天,我就来给大家说道说道。在我看来,现今的中美博弈,咱们中华家占了八个方面的优势
生活中有数学,存在着数学思想,捕捉“生活现象” 用镜头捕捉生活中的美
数学是从现实世界中抽象出来的,它源于实践,高于实践,又用于实践。离开了生活,数学就成了无源之水。因此,在数学教学活动中,教师应选择学生感兴趣的熟悉的教学情境,激发学生的学习积极性,帮助他们在自主探索和合作交流的正确方法,理解和掌握