R-排序order(),sort(),rank()

R中有三个排序函数:order(),sort(),rank()

   sort(x)是对向量x进行排序,返回值排序后的数值向量
   rank()是求秩的函数,它的返回值是这个向量中对应元素的“排名”
   而order()的返回值是对应“排名”的元素所在向量中的位置
注意三者返回值的差异。

Example:

> x<-c(1,5,8,2,9,7,4)
> order(x)#x中排第2的数字在原数列中的位置
[1] 1 4 7 2 6 3 5
> sort(x) #x数值排序后x数值本身
[1] 1 2 4 5 7 8 9
> rank(x) #x中数值在排序数列中的排名
[1] 1 4 6 2 7 5 3 


order() function sorts a vector, matrix or data frame.

order(x, decreasing = FALSE, na.last = NA, ...)

x : vector
decreasing : decrease or not
na.last : if TRUE, NAs are put at last position, FALSE at first, if NA, remove them (default)
...  

Sort Vectors:
>x <- c(1,2.3,2,3,4,8,12,43,-4,-1,NA)
>order(x)
 [1] -4.0 -1.0  1.0  2.0  2.3  3.0  4.0  8.0 12.0 43.0

>order(x,decreasing=TRUE)
 [1] 43.0 12.0  8.0  4.0  3.0  2.3  2.0  1.0 -1.0 -4.0

>order(x,decreasing=TRUE, na.last=TRUE)
 [1] 43.0 12.0  8.0  4.0  3.0  2.3  2.0  1.0 -1.0 -4.0   NA

>order(x,decreasing=TRUE, na.last=FALSE)
 [1]   NA 43.0 12.0  8.0  4.0  3.0  2.3  2.0  1.0 -1.0 -4.0

Sort Matrix by one column, following is a csv file example. 

,t1,t2,t3,t4,t5,t6,t7,t8
r1,1,0,1,0,0,1,0,2
r2,1,2,5,1,2,1,2,1
r3,0,0,9,2,1,1,0,1
r4,0,0,2,1,2,0,0,0
r5,0,2,15,1,1,0,0,0
r6,2,2,3,1,1,1,0,0
r7,2,2,3,1,1,1,0,1
>x <- read.csv("ordermatrix.csv",header=T,sep=",");
>x <- x[order(x[,4]),];
>x
"X","t1","t2","t3","t4","t5","t6","t7","t8"
"1","r1",1,0,1,0,0,1,0,2
"4","r4",0,0,2,1,2,0,0,0
"6","r6",2,2,3,1,1,1,0,0
"7","r7",2,2,3,1,1,1,0,1
"2","r2",1,2,5,1,2,1,2,1
"3","r3",0,0,9,2,1,1,0,1
"5","r5",0,2,15,1,1,0,0,0 


Order data frame:
>BOD     #R built-in dataset, Biochemical Oxygen Demand
  Time demand
1    1    8.3
2    2   10.3
3    3   19.0
4    4   16.0
5    5   15.6
6    7   19.8

Sort by "demand" column:
>BOD[with(BOD,order(demand)),]
  Time demand
1    1    8.3
2    2   10.3
5    5   15.6
4    4   16.0
3    3   19.0
6    7   19.8

  • 4
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
R语言中,可以使用多个函数来对数据进行排序,包括sort()、rank()、order()和arrange()等。其中,sort()函数是对向量进行排序,按照从小到大的顺序排列。\[1\]例如,使用sort()函数对一个向量进行排序可以这样写:sort(vector)。rank()函数用于计算向量中元素的排名,order()函数用于返回排序后的索引,arrange()函数用于对数据框按照指定的列进行排序。 如果你想对一个数据表或数据框按照某一列的大小进行排序,可以使用order()函数。例如,使用order()函数对一个数据表按照age列进行排序可以这样写:DT\[order(age)\].\[2\] 另外,如果你想安装和导入data.table包,可以使用以下代码: ```R # 从CRAN安装 install.packages('data.table') # 从Gitlab安装开发版本 install.packages("data.table", repos="https://Rdatatable.gitlab.io/data.table") data.table::update.dev.pkg() # 移除并重新安装 remove.packages("data.table") install.packages("data.table") # 导入包 library(data.table) ``` 然后,你可以使用order()函数按照指定数据列的值对data.table数据进行排序。例如,使用order()函数对DT数据表按照age列进行排序可以这样写:DT\[order(age)\].\[3\] #### 引用[.reference_title] - *1* [R语言排序](https://blog.csdn.net/whiteof/article/details/123730664)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [R语言使用order函数按照指定数据列的值排序data.table数据(默认从小到大升序排序)](https://blog.csdn.net/weixin_57242009/article/details/124518129)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值