按两列对数据框排序(带条件)
这个问题在这里已经有了答案:
根据@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
在这里,它首先按Age
和Name
排序,您可以添加更多变量。