这是我的代码:
rankhospital <- function(state, outcome){
o<-17
out<-data.frame(out)
out.sub<-subset(out,State==state)
out.s<-subset(out.sub[,c(1,2,7,o)])
out.1<-out.s[!out.sub["Lower.Mortality.Estimate...Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure"]=="Not Available",]
sor<-order(as.numeric(out.1[,4]))
x<-out.1[sor,]
x
}
我的函数读取.csv
文件并根据第4列中的值对其进行排序,并通过x
返回已排序的data.frame,但输出结果如下:
10.1
10.1
10.1
10.2
10.2
...
...
...
6.3
6.4
6.5
...
9.0
9.3
...
似乎order
未在out.1
如何解决这个问题?
谢谢
答案 0 :(得分:0)
我几乎可以肯定class(out.1)=="factor"
,在对因子进行as.numeric()
时,您会获得基础整数代码,而不是转换为数字的标签值。尝试将行更改为
sor<-order(as.numeric(as.character(out.1[,4])))
并记住要非常小心你的不同列类类型。因素与角色向量不同。