在R中处理数据框类型的数据时候,经常会遇到根据数据框中某一列来对整个数据框进行排序的情况。
同时,当主列排序完成之后,会有相同级别的多行数据存在,这时可能就需要依照另外一列进行次级排序。
下面的代码通过 order()
函数返回个行所对应的顺序,同时该函数可以接受多个参数进行排序,第一个参数是主排序的依据列,第二个是次级排序依据列,依次类推。
> x <- c(3,5,4,6,3,2,1,4,3,2)
> y <- c('c','c','d','b','a','b','d','e','e','d')
> z <- c(1,2,3,4,5,6,7,8,9,10)
> testData <- data.frame(x=x,y=y,z=z)
> o <- order(testData[,"x"],TestData[,"y"])
> testData[o,]
x y z
7 1 d 7
6 2 b 6
10 2 d 10
5 3 a 5
1 3 c 1
9 3 e 9
3 4 d 3
8 4 e 8
2 5 c 2
4 6 b 4
>