R语言中对数据框或类似数据表的排序。
实验过程:
1、创建一个数据框
> a
[1] 2 9 5 6 7 3 1 4
> b<-c('a','d','e','f','g','h','i','k')
> d<-data.frame(a,b,stringsAsFactors = FALSE) #这里不需要把串当成因子
a b
1 2 a
2 9 d
3 5 e
4 6 f
5 7 g
6 3 h
7 1 i
8 4 k
> str(d)
'data.frame': 8 obs. of 2 variables:
$ a: num 2 9 5 6 7 3 1 4
$ b: chr "a" "d" "e" "f" ...
2、对a列进行排序
>e<-d[order(d[,1]),]
>e
> e
a b
7 1 i
1 2 a
6 3 h
8 4 k
3 5 e
4 6 f
5 7 g
2 9 d
3、对b列进行排序
> e<-d[order(d[,2]),]
> e
a b
1 2 a
2 9 d
3 5 e
4 6 f
5 7 g
6 3 h
7 1 i
8 4 k
4、其他操作
(1)增加自然序号
> e$no<-1:length(d$a)
> e
a b no
7 1 i 1
1 2 a 2
6 3 h 3
8 4 k 4
3 5 e 5
4 6 f 6
5 7 g 7
2 9 d 8
注意:这里使用1:length(d$a),而不用1:length(d),length(d)等于d的维数,即在这里为2。
(2)增加数据索引号
>no<-order(d[,1])
> e<-d[no,]
>e$no<-no