当我们要操作数据时,可能需要排序列。操纵可能有多种原因,例如交叉验证,可视化等。在更改原始数据中的任何内容时,我们也应注意,因为这可能会影响我们的处理。要更改列的顺序,我们可以使用单个方括号。
请看以下数据帧-
> set.seed(1)
> Class<-letters[1:20]
> Grade<-rep(c("A","B","C","D"),times=5)
> Score<-sample(1:100,20,replace=TRUE)
> df<-data.frame(Class,Grade,Score)
> df
Class Grade Score
1 a A 68
2 b B 39
3 c C 1
4 d D 34
5 e A 87
6 f B 43
7 g C 14
8 h D 82
9 i A 59
10 j B 51
11 k C 97
12 l D 85
13 m A 21
14 n B 54
15 o C 74
16 p D 7
17 q A 73
18 r B 79
19 s C 85
20 t D 37
> df<-df[, c("Grade","Class","Score")]
> df
Grade Class Score
1 A a 68
2 B b 39
3 C c 1
4 D d 34
5 A e 87
6 B f 43
7 C g 14
8 D h 82
9 A i 59
10 B j 51
11 C k 97
12 D l 85
13 A m 21
14 B n 54
15 C o 74
16 D p 7
17 A q 73
18 B r 79
19 C s 85
20 D t 37如果列名称按如下所示的顺序排列-
> x1<-letters[1:20]
> x2<-rep(c("A","B","C","D"),times=5)
> x3<-sample(1:100,20,replace=TRUE)
> df<-data.frame(x3,x2,x1)
> df
x3 x2 x1
1 44 A a
2 25 B b
3 70 C c
4 39 D d
5 51 A e
6 42 B f
7 6 C g
8 24 D h
9 32 A i
10 14 B j
11 2 C k
12 45 D l
13 18 A m
14 22 B n
15 78 C o
16 65 D p
17 70 A q
18 87 B r
19 70 C s
20 75 D t现在我们可以使用sort函数来更改顺序,如下所示-
> df[,sort(names(df))] x1 x2 x3 1 a A 44 2 b B 25 3 c C 70 4 d D 39 5 e A 51 6 f B 42 7 g C 6 8 h D 24 9 i A 32 10 j B 14 11 k C 2 12 l D 45 13 m A 18 14 n B 22 15 o C 78 16 p D 65 17 q A 70 18 r B 87 19 s C 70 20 t D 75