按两列对数据框排序(带条件)

这个问题在这里已经有了答案:

  • 如何按多个列排序数据框? 16个答案

  • 根据@Stezzo的评论更新答案

    只需在order功能中添加DataTable[, 1]

    DataTable[order(DataTable[,2], DataTable[, 1]),]
    
    #    Name Age Grade
    # 4   Jeff  16     2
    # 6  Michi  16     4
    # 5 Rodger  16     2
    # 1  Nelle  17     1
    # 2   Alex  18     5
    # 3 Thomas  18     3
    

    请记住,传递参数的顺序很重要。 它将首先对DataTable数据帧进行第二列排序,如果出现并列,则会考虑第一列的第二个参数。


    除了@Ronak Shah的回答你也可以使用dplyr arrange方式。 它对我来说看起来更简单一些。

    arrange(DataTable,Age,Name)
    

        Name Age Grade
    1   Alex  16     3
    2   Jeff  16     2
    3  Michi  16     4
    4 Rodger  16     2
    5  Nelle  17     1
    6   Alex  18     5
    7 Thomas  18     4
    

    在这里,它首先按AgeName排序,您可以添加更多变量。

    链接地址: http://www.djcxy.com/p/70839.html

    上一篇: Sort data frame by two columns (with condition)

    下一篇: How can I order a dataframe by the second column in R?