如何在 r 中按多列排序(附示例)


您可以使用以下任意方法在 R 中跨多个列对数据框进行排序:

方法一:使用Base R

 df[order(-df$column1, df$column2), ]

方法2:使用dplyr

 library (dplyr)

df %>%
  arrange( desc (column1), column2)

以下示例展示了如何在实践中使用以下数据框使用每种方法:

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G'),
                 points=c(90, 90, 93, 91, 91, 99, 85),
                 assists=c(33, 28, 31, 39, 34, 40, 44))

#view data frame
df

  team points assists
1 A 90 33
2 B 90 28
3 C 93 31
4 D 91 39
5 E 91 34
6 F 99 40
7 G 85 44

方法一:使用Base R

以下代码显示了如何按降序(从最大到最小)对基于 R 的数据块进行排序,然后按辅助值升序排序:

 #sort by points descending, then by assists ascending
df[order(-df$points, df$assists), ]

  team points assists
6 F 99 40
3 C 93 31
5 E 91 34
4 D 91 39
2 B 90 28
1 A 90 33
7 G 85 44

请注意,数据框中的行按点从最大到最小排序,然后按辅助从最小到最大排序。

方法2:使用dplyr

以下代码演示了如何使用dplyr包中的函数按降序(从大到小)然后按升序辅助对数据框进行排序:

 library (dplyr)

df %>%
  arrange( desc (dots), assists)

  team points assists
1 F 99 40
2 C 93 31
3 E 91 34
4 D 91 39
5 B 90 28
6 A 90 33
7 G 85 44

同样,数据框中的行按点从最大到最小排序,然后按辅助从最小到最大排序。

注意:您可以在此处找到arrange()函数的完整文档。

其他资源

以下教程解释了如何在 R 中执行其他常见排序操作:

如何在R中按字母顺序对值进行排序
如何在 R 中按日期对数据框进行排序

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注