【问题标题】:How to sort with multiple conditions in R [duplicate]如何在R中使用多个条件进行排序[重复]
【发布时间】:2019-09-16 15:58:46
【问题描述】:

我在 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"))

我的目标是按Age 和Name 对数据框进行排序。如果我输入以下命令,我可以部分完成这项任务:

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

注意:我想避免使用额外的包,而只使用默认包

【问题讨论】:

    标签: r sorting dataframe


    【解决方案1】:

    与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
    

    【讨论】:

    • 感谢您的快速回答,但我也想知道是否有不安装任何默认软件包的选项:)
    • with 让你做起来更轻松。
    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 2022-11-29
    • 1970-01-01
    • 2015-08-08
    • 1970-01-01
    • 2021-07-04
    • 2012-11-02
    相关资源
    最近更新 更多