如何更改R数据框中的列顺序?

当我们要操作数据时,可能需要排序列。操纵可能有多种原因,例如交叉验证,可视化等。在更改原始数据中的任何内容时,我们也应注意,因为这可能会影响我们的处理。要更改列的顺序,我们可以使用单个方括号。

示例

请看以下数据帧-

> 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

以上是 如何更改R数据框中的列顺序? 的全部内容, 来源链接: utcz.com/z/362302.html

回到顶部