R中排序函数总结:sort,order,rank,arrange,reorder

总结(区别):

1、sort是直接对向量排序,返回原数值

2、order先对数值排序,然后返回排序后各数值的索引

3、rank返回原数据各项排名

4、arrangeplyr包中的,可对数据框按列排序,仍返回数据框

5、reorder用在绘图中,比如ggplot中绘条形图,可使x轴按y轴数值大小排序;比如横轴为age,纵轴为money,可写为:aes(x=reorder(age,money),y=money),即按money对age排序

详情且看下面的实验数据(可自己尝试,加深理解!)

选用两组实验数据:数值型m字符型n

简单的实验数据:

m数值型向量1,4,7,2,n字符型向量a,c,d,b;

简单的代码:

m<-c(1,4,7,2)
n<-c('a','c','d','b')

1.Sort的用法

sort(m)
## [1] 1 2 4 7
sort(n)
## [1] "a" "b" "c" "d"

2.Rank的用法

rank(m)

## [1] 1 3 4 2

3.order的用法

order(m)
## [1] 1 4 2 3
order(n)
## [1] 1 4 2 3

4.arrange的用法

#首先构造数据框mn(第一列为m,第二列为n)
mn<-as.data.frame(cbind(m,n))

library(plyr)
#按照m列排序
arrange(mn,m)
##   m n
## 1 1 a
## 2 2 b
## 3 4 c
## 4 7 d
#按照n列排序
arrange(mn,n)
##   m n
## 1 1 a
## 2 2 b
## 3 4 c
## 4 7 d

5.Reorder的用法

mn$n<-factor(mn$n)
library(ggplot2)
ggplot(mn,aes(x=reorder(n,m),y=m))+
  geom_bar(stat = "identity",width = 0.8)

现在考完R语言了,总结一下!

好巧,考试的时候遇到了这几个排序的区别,还好当时准备写这篇blog(虽然不完整)哈哈哈!!幸运!!不过,如果我之前总结完,考试的时候就不用犹豫那么久了,,还是有点后悔的!这件事告诉我,,老师真的啥都可能考,,不管多细!!

你可能感兴趣的:(R)