我在数据框中有一些医院数据,从 csv 读取。我尝试按用户定义的列排序数据框col
,然后按医院的名称,如下所示:
col <- 'Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia'
hospitals.sorted <- hospitals[order(hospitals[,col], hospitals$Hospital.Name),]
但我想我错过了一些东西;它似乎col
像字符串一样排序:
> hospitals.sorted
... # so far so good # ...
2749 10.0
2831 10.0
2891 10.0
2837 10.1
2824 10.1
2774 10.1
... # not so good # ...
2856 15.7
2834 15.9
2797 16.0
2835 7.4
2850 7.7
2789 8.1
... # there are some non-numeric values at the very bottom # ...
2806 9.9
2867 9.9
2884 9.9
2808 Not Available
2913 Not Available
2911 Not Available
只是为了确认该列实际上是数字:
> sapply(hospitals, mode)
Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia
"numeric"
Hospital.Name
"numeric"
我不知道为什么Hospital.Name
它显然不是数字。
我尝试过的其他事情无济于事:
- 使用
as.numeric(hospitals[,col])
里面order
- 排序前删除“不可用”值
我可能遗漏了一些基本的东西。哈!