轉|R中排序函數總結:sort,order,rank,arrange,reorder

轉:https://blog.csdn.net/kelanj/article/details/80945540

總結(區別):

1、sort是直接對向量排序,返回原數值;

2、order先對數值排序,然後返回排序後各數值的索引;

3、rank返回原數據各項排名;

4、arrange是plyr包中的,可對數據框按列排序,仍返回數據框;

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(雖然不完整)哈哈哈!!幸運!!不過,如果我之前總結完,考試的時候就不用猶豫那麼久了,,還是有點後悔的!這件事告訴我,,老師真的啥都可能考,,不管多細!!
---------------------  
作者:還是小小白  
來源:CSDN  
原文:https://blog.csdn.net/kelanj/article/details/80945540  
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章