使用R包dplyr的函数arrange更简单,更简洁:
#多条件排序:使用dplyr::arrange
library(dplyr)
data("iris")
head(iris)
#第一列升序,然后是第三列升序
arrange(iris,iris[,1],iris[,3])
#第一列升序,然后是第三列降序
arrange(iris,iris[,1],-iris[,3])
扩展资料
R语言排序函数sort(),rank(),order()
>x<-c(97,93,85,74,32,100,99,67)
>sort(x)
[1]32677485939799100
>order(x)
[1]58432176
>rank(x)
[1]65431872
R语言作图时,默认情况下软件会按照自己的方式对坐标轴的项目进行排序,然而这种排序往往不是我们所希望的,因此需要想办法让坐标轴的项目按照我们希望的顺序输出。
如下所示,我有两列数据,要绘制箱线图,以第一列为Y轴,第二列为X轴,希望X轴的输出顺序按照第二列由上到下排列。
然而软件输出的顺序如下:
解决方案:
通过一个因子事先自定义X轴顺序,作图命令如下:
至此,X轴各项目会按照我们自定义的顺序排列。
本节来介绍 dplyr 中的行选择函数slice,此函数可轻松的按照索引对行进行处理
取前3行
取第三行至最后一行
取第5行至最后一行
取最后一行
取前5行
取最后5行
将第一行至第四行从数据中剔除
取出Sepal.Width列最小的一行
若有重复值加 with_ties=FALSE 只取一行
slice_sample 随机无重复抽样
slice_sample 随机有重复抽样
每组只取2行
pro=0.5 表示按分组只取每组内一半的数据
保留全部数据