R语言-数据排序

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) #这里不需要把串当成因子

> d
  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





你可能感兴趣的:(R,Language)