如何在R中用多个条件排序

时间:2019-04-27 10:10:08

标签: r sorting dataframe

我在R中有一个非常简单的数据框:

x <- data.frame("SN" = 1:7, "Age" = c(21,15,22,33,21,15,25), "Name" = c("John","Dora","Paul","Alex","Bud","Chad","Anton"))

我的目标是按照AgeName对数据框进行排序。如果我键入以下命令,我就能部分完成此任务:

x[order(x[, 'Age']),] 

返回:

  SN Age  Name
2  2  15  Dora
6  6  15  Chad
1  1  21  John
5  5  21   Bud
3  3  22  Paul
7  7  25 Anton
4  4  33  Alex

如您所见,数据框是按年龄排序的,而不是按名称排序的。

问题:如何同时按年龄和名称排序数据框?结果就是这样

  SN Age  Name
6  6  15  Chad
2  2  15  Dora
5  5  21   Bud
1  1  21  John
3  3  22  Paul
7  7  25 Anton
4  4  33  Alex

注意:我想避免使用其他软件包,而只使用默认软件包

1 个答案:

答案 0 :(得分:2)

使用dplyr

library(dplyr)
x %>%
   arrange(Age, Name)


  SN Age  Name
1  6  15  Chad
2  2  15  Dora
3  5  21   Bud
4  1  21  John
5  3  22  Paul
6  7  25 Anton
7  4  33  Alex


x[with(x, order(Age, Name)), ]

 SN Age  Name
6  6  15  Chad
2  2  15  Dora
5  5  21   Bud
1  1  21  John
3  3  22  Paul
7  7  25 Anton
4  4  33  Alex