【R語言學習筆記】若干排序問題

Ryan_Yang_發表於2017-04-26

在處理資料的時候,經常遇到關於數字和因子排序的問題,下面分享幾個排序的函式。

Order函式是簡單的一個排序函式,先看第一種很簡單的情況

先看一個資料集

a<-data.frame(a=c(1:5),b=as.factor(c(1,0,1,1,0)),c=c(15:11))
a b  c
1 1 1 15
2 2 0 14
3 3 1 13
4 4 1 12
5 5 0 11

如果新加一列,把原本的C按照a來升序,那麼:

a$d1<-a$c[order(a$b,decreasing=F)]
a b  c d1
1 1 1 15 15
2 2 0 14 14
3 3 1 13 13
4 4 1 12 12
5 5 0 11 11

如果按照c排降序

a$d2<-a$c[order(a$a,decreasing=T)]
 a b  c d1 d2
1 1 1 15 11 11
2 2 0 14 12 12
3 3 1 13 13 13
4 4 1 12 14 14
5 5 0 11 15 15

如果按照因子排序,則

a$d3<-a$c[order(a$b,decreasing=F)]
 a b  c d2 d3
1 1 1 15 11 14
2 2 0 14 12 11
3 3 1 13 13 15
4 4 1 12 14 13
5 5 0 11 15 12

可以看到,b列的因子是0和1,所以就是按照0,1 排序

下面如果按照兩個因子排序的話,先按照前面一個排序,然後按照後面的排序,如

a$d4<-a$c[order(a$b,a$c,decreasing=F)]
a b  c d2 d3 d4
1 1 1 15 11 14 11
2 2 0 14 12 11 14
3 3 1 13 13 15 12
4 4 1 12 14 13 13
5 5 0 11 15 12 15

相關文章