R语言常用排序函数有内置函数sort
,rank
,order
,还有dplyr包内函数arrange
。
#生成虚拟数据
data <- data.frame(
score = c(1800,1500,2000,2500,2500,NA),
row.names = c('杭州','成都','南京','上海','北京','NA')
)
data
score
杭州 1800
成都 1500
南京 2000
上海 2500
北京 2500
NA NA
sort
函数对数据排序返回升序向量结果。
参数:
x
:要传入的数据decreasing
:默认为FALSE,设置为TRUE则返回从大到小降序排列结果na.last
:值为NA,移除缺失值NA。值为TRUE,缺失值排在最后。值为FALSE,缺失值排在最前面sort(data$score)
[1] 1500 1800 2000 2500 2500
sort(data$score,decreasing = TRUE)
[1] 2500 2500 2000 1800 1500
sort(data$score,na.last = NA)
[1] 1500 1800 2000 2500 2500
sort(data$score,na.last = TRUE)
[1] 1500 1800 2000 2500 2500 NA
sort(data$score,na.last = FALSE)
[1] NA 1500 1800 2000 2500 2500
rank
为秩排序函数,常用于非参数检验过程。用数据的秩排序代替值的排序。结果返回数据的秩。
参数:
x
:传入的数据na.last
:同sortties.method
:设定相同数据如何排秩。可选值:
data
score
杭州 1800
成都 1500
南京 2000
上海 2500
北京 2500
NA NA
rank(data$score,na.last = NA)
[1] 2.0 1.0 3.0 4.5 4.5
rank(data$score,na.last = NA,ties.method = 'first')
[1] 2 1 3 4 5
rank(data$score,na.last = NA,ties.method = 'last')
[1] 2 1 3 5 4
rank(data$score,na.last = NA,ties.method = 'random')
[1] 2 1 3 4 5
rank(data$score,na.last = NA,ties.method = 'min')
[1] 2 1 3 4 4
rank(data$score,na.last = NA,ties.method = 'max')
[1] 2 1 3 5 5
order
对数据的向量下标排序,返回的是向量下标排序结果
参数:
x
:传入的数据na.last
:同sortdecreasing
:同sortorder(data,na.last = NA)
[1] 2 1 3 4 5
arrange
可以进行多次排序。配合desc
函数实现降序排列。缺失值排在最后面
library(dplyr)
library(tibble)
data <- rownames_to_column(data)
data
rowname score
1 杭州 1800
2 成都 1500
3 南京 2000
4 上海 2500
5 北京 2500
6 NA NA
arrange(data)
rowname score
1 杭州 1800
2 成都 1500
3 南京 2000
4 上海 2500
5 北京 2500
6 NA NA
arrange(data,desc(data$score))
rowname score
1 上海 2500
2 北京 2500
3 南京 2000
4 杭州 1800
5 成都 1500
6 NA NA
R 语 言 小 白 速 通 R语言小白速通 R语言小白速通
懂 点 R 语 言 懂点R语言 懂点R语言
欢 迎 分 享 收 藏 关 注 欢迎分享收藏关注 欢迎分享收藏关注