2016-07-24 63 views
0

我有兩列HospitalNameDeathRate_For_Hospital數據幀Rating。它看起來像排序十進制數據不能正常工作

HospitalName DeathRate_For_Hospital 
    MGM Hospital      9.8      
    HNK Hospital      10.1 
Hopkins Hospital      8.3 
    Arr Medicals      10.0 
      .       . 
      .       . 

所有我需要的是讓醫院的名稱與至少DeathRate_For_Hospital,所以我訂購DeathRate_for_Hospital,如:

Rating <- Rating[order(round(as.numeric(Rating$ DeathRate_For_Hospital))),] 
head(Rating,1) 

雖然我轉換爲升序排列,我不知道爲什麼有用。

這是工作好,如果我只有數值。但如果它們是浮動值,排序不起作用。

感謝

+0

@ZheyuanLi,令工作時,該列的數值,如果列有一個像9.35,10.1,8.3..etc然後爲了工作不正常的浮動值。 –

+1

@ZheyuanLi,它的因素。我的意思是它的兩列是因素和因素。 –

回答

2

所有我需要的是用最少的拿到醫院名稱DeathRate_For_Hospital

如果with(Rating, class(DeathRate_For_Hospital))是 「數字」,你只需要:

with(Rating, HospitalName[order(DeathRate_For_Hospital)])[1] 

但由於它可以讓你「因子」,您需要:

with(Rating, HospitalName[order(as.numeric(as.character(DeathRate_For_Hospital)))])[1] 

或更有效地:

numbers <- as.numeric(levels(DeathRate_For_Hospital)) 
with(Rating, HospitalName[order(numbers[DeathRate_For_Hospital])])[1] 
+0

非常感謝 –