如何在 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 中执行其他常见排序操作: