按字母顺序对列值进行排序

时间:2016-07-25 11:37:48

标签: r sorting

HospitalName                       | Rating
-----------------------------------|  ------
FORT DUNCAN MEDICAL CENTER         | 8.1
TOMBALL REGIONAL MEDICAL CENTER    | 8.5
DETAR HOSPITAL NAVARRO             | 8.7
CYPRESS FAIRBANKS MEDICAL CENTER   | 8.7

这是我的样本表,你可以看到在医院名称“DETAR HOSPITAL”和“Cypress FAIRBANKS”具有相同的评级。我按最低评级将表格排序到最高评级,但我只需按字母顺序对医院名称进行排序,具有相同的评级,如“CYPRESS ......”应首先出现“DETAR”,尽管它们具有相同的评级但是他们需要按字母顺序排列。

任何人都能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我们可以使用order

df1[order(df1$Rating, df1$HospitalName),]
#                      HospitalName Rating
#1       FORT DUNCAN MEDICAL CENTER    8.1
#2  TOMBALL REGIONAL MEDICAL CENTER    8.5
#4 CYPRESS FAIRBANKS MEDICAL CENTER    8.7
#3           DETAR HOSPITAL NAVARRO    8.7

如果我们使用的是dplyr,那么arrange就是最佳选择

library(dplyr)
df1 %>%
   arrange(Rating, HospitalName)