我有一个数据框:
df <- data.frame(c(name = "FORT DUNCAN", "DETAR HOSPITAL", "CYPRESS FAIRBANKS","MISSION REGIONAL", "Test"), rate = c(8.0,8.7,8.7,8.1,8.9))
colnames(df) = c("name","rate")
ordered_df <- df[order(df[,2]),]
name rate
1 FORT DUNCAN 8.0
4 MISSION REGIONAL 8.1
2 DETAR HOSPITAL 8.7
3 CYPRESS FAIRBANKS 8.7
5 Test 8.9
我可以通过rate变量清楚地对数据帧进行排序。但是,如果两个费率相似,那么我想按名称订购。即Detar医院和赛普拉斯费尔班克斯的费率相同,为8.7。因此,我希望Cypress Fairbanks向上移动,Detar医院向下移动,Test应保持在原位(根据费率最后一个位置)...... 任何想法???
干杯
答案 0 :(得分:2)
由于order
通过...
接受了许多变量,您可以执行以下操作:
> df[order(df[,2],df[,1] ),]
name rate
1 FORT DUNCAN 8.0
4 MISSION REGIONAL 8.1
3 CYPRESS FAIRBANKS 8.7
2 DETAR HOSPITAL 8.7
5 Test 8.9
答案 1 :(得分:2)
我想我是通过以下方式解决的:
ordered_df <- df[order(df$rate, df$name),]
干杯