如何在order()中修复此错误?

时间:2014-05-26 08:17:39

标签: r

这是我的代码:

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

的第4列中对我的值进行排序

如何解决这个问题?

谢谢

1 个答案:

答案 0 :(得分:0)

我几乎可以肯定class(out.1)=="factor",在对因子进行as.numeric()时,您会获得基础整数代码,而不是转换为数字的标签值。尝试将行更改为

sor<-order(as.numeric(as.character(out.1[,4])))

并记住要非常小心你的不同列类类型。因素与角色向量不同。