如何将R数据帧的一列按升序排序,另一列按降序排序?

对R数据帧的列进行排序并不困难,但是有时我们想以相反的顺序对其进行排序,例如,我们可能希望以升序对某些列进行排序,而以降序对某些列进行排序。排序目的的这种变化使它有点复杂。因此,我们可以将否定和排序功能一起使用,以对要按降序排序的列进行排序。

示例

请看以下数据帧-

set.seed(111)

x1<-rnorm(20,2)

x2<-rpois(20,5)

x3<-sample(1:10,20,replace=TRUE)

x4<-sample(1:50,20)

x5<-rpois(20,10)

x6<-sample(1:100,20)

df<-data.frame(x1,x2,x3,x4,x5,x6)

df

输出结果

x1 x2 x3 x4 x5 x6

1 2.2352207 6 7 18 14 4

2 1.6692641 4 5 32 11 35

3 1.6883762 6 1 19 12 74

4 -0.3023457 8 10 33 14 65

5 1.8291240 5 10 25 8 9

6 2.1402782 4 7 27 10 55

7 0.5025733 4 4 28 7 83

8 0.9898116 7 4 44 10 47

9 1.0515244 6 1 11 9 88

10 1.5060378 7 9 31 13 67

11 1.8263259 6 6 12 12 48

12 1.5934012 5 8 41 13 44

13 3.8456363 1 3 6 8 27

14 2.3940541 4 10 39 9 58

15 2.7975285 12 8 38 13 10

16 0.4333346 5 10 50 11 99

17 1.9141490 5 1 9 6 40

18 1.6408605 5 9 40 6 32

19 0.8063910 2 10 35 8 5

20 2.3641867 7 10 36 6 15

按升序对第1列进行排序,并根据第1列对第6列进行排序-

示例

df[order(df[,1],-df[,6]),]

输出结果

x1 x2 x3 x4 x5 x6

4 -0.3023457 8 10 33 14 65

16 0.4333346 5 10 50 11 99

7 0.5025733 4 4 28 7 83

19 0.8063910 2 10 35 8 5

8 0.9898116 7 4 44 10 47

9 1.0515244 6 1 11 9 88

10 1.5060378 7 9 31 13 67

12 1.5934012 5 8 41 13 44

18 1.6408605 5 9 40 6 32

2 1.6692641 4 5 32 11 35

3 1.6883762 6 1 19 12 74

11 1.8263259 6 6 12 12 48

5 1.8291240 5 10 25 8 9

17 1.9141490 5 1 9 6 40

6 2.1402782 4 7 27 10 55

1 2.2352207 6 7 18 14 4

20 2.3641867 7 10 36 6 15

14 2.3940541 4 10 39 9 58

15 2.7975285 12 8 38 13 10

13 3.8456363 1 3 6 8 27

示例

df[order(-df[,2],-df[,3]),]

输出结果

x1 x2 x3 x4 x5 x6

15 2.7975285 12 8 38 13 10

4 -0.3023457 8 10 33 14 65

20 2.3641867 7 10 36 6 15

10 1.5060378 7 9 31 13 67

8 0.9898116 7 4 44 10 47

1 2.2352207 6 7 18 14 4

11 1.8263259 6 6 12 12 48

3 1.6883762 6 1 19 12 74

9 1.0515244 6 1 11 9 88

5 1.8291240 5 10 25 8 9

16 0.4333346 5 10 50 11 99

18 1.6408605 5 9 40 6 32

12 1.5934012 5 8 41 13 44

17 1.9141490 5 1 9 6 40

14 2.3940541 4 10 39 9 58

6 2.1402782 4 7 27 10 55

2 1.6692641 4 5 32 11 35

7 0.5025733 4 4 28 7 83

19 0.8063910 2 10 35 8 5

13 3.8456363 1 3 6 8 27

示例

df[order(-df[,2],df[,5]),]

输出结果

x1 x2 x3 x4 x5 x6

15 2.7975285 12 8 38 13 10

4 -0.3023457 8 10 33 14 65

20 2.3641867 7 10 36 6 15

8 0.9898116 7 4 44 10 47

10 1.5060378 7 9 31 13 67

9 1.0515244 6 1 11 9 88

3 1.6883762 6 1 19 12 74

11 1.8263259 6 6 12 12 48

1 2.2352207 6 7 18 14 4

17 1.9141490 5 1 9 6 40

18 1.6408605 5 9 40 6 32

5 1.8291240 5 10 25 8 9

16 0.4333346 5 10 50 11 99

12 1.5934012 5 8 41 13 44

7 0.5025733 4 4 28 7 83

14 2.3940541 4 10 39 9 58

6 2.1402782 4 7 27 10 55

2 1.6692641 4 5 32 11 35

19 0.8063910 2 10 35 8 5

13 3.8456363 1 3 6 8 27

以上是 如何将R数据帧的一列按升序排序,另一列按降序排序? 的全部内容, 来源链接: utcz.com/z/319307.html

回到顶部