一、单变量序列排序
1、rank()函数:返回向量中每个元素对应的秩
2、sort()函数:对向量从小到大排序
data <- c(5,6,8,2,9,3) sort(data) # 2 3 5 6 8 9 sort(data, decreasing = T) #设置降序排列, 9 8 6 5 3 2
3、order()函数:返回元素对应的位置,默认升序
###向量排序 data <- c(5,6,8,2,9,3) order(data) # 4 6 1 2 3 5 data[order(data)] #索引位置对应的元素值,等同于sort(data)排序 ###数据框排序 d <- data.frame( x=c(13,45,13,45,13), y=c(3,1,2,2,3), t=c(56,7,68,3,1)) d[order(d$x,d$y),] #x升序 y升序 x y t 3 13 2 68 1 13 3 56 5 13 3 1 2 45 1 7 4 45 2 3 d[order(-d$x,d$y),] #x降序 y升序 x y t 2 45 1 7 4 45 2 3 3 13 2 68 1 13 3 56 5 13 3 1
二、数据表(矩阵)排序
1、order()函数
2、arrange()函数:针对数据框,返回基于某列排序后的数据框,方便多重排序,默认升序
d <- data.frame( x=c(13,45,13,45,13), y=c(3,1,2,2,3), t=c(56,7,68,3,1)) arrange(d,x,-y) #x升序 y降下序 x y t 1 13 3 56 2 13 3 1 3 13 2 68 4 45 2 3 5 45 1 7
三、因子类型排序
1、relevel函数
2、factor函数
3、order函数
四、筛选函数
1、which函数
d <- data.frame(
x=c(13,45,13,45,13),
y=c(3,1,2,2,3),
t=c(56,7,68,3,1))
d[which(d$x==13), ] #返回x列是13的行
x y t
1 13 3 56
3 13 2 68
5 13 3 1
d[which(d$x %in% c('45', '80')), ] #返回x列中在c向量集中的行
x y t
2 45 1 7
4 45 2 3
2、filter函数:仅用于数据框
##逻辑运算符 x==y,x>y,x>=y,x3、select()函数:仅用于数据框
4、subset()函数::用于所有数据集
d <- data.frame( x=c(13,45,13,45,13), y=c(3,1,2,2,3), t=c(56,7,68,3,1)) subset(d, #数据集 x="13"| y="2" #筛选条件 select=t #需要显示的列 ) t 1 56 3 68 4 3 5 15、top_n()函数
d <- data.frame( x=c(13,45,13,45,13), y=c(3,1,2,2,3), t=c(56,7,68,3,1)) top_n(d,n = 2, wt = x) x y t 1 45 1 7 2 45 2 3



