R 如何按顺序()修复此错误?

R 如何按顺序()修复此错误?,r,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

这是我的密码:

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
}
似乎
order
没有对
out.1的第4列中的值进行排序

如何解决这个问题


谢谢

我几乎可以肯定,
类(out.1)=“factor”
当对factors执行
as.numeric()
操作时,您得到的是底层整数代码,而不是转换为数字的标签值。试着把线路改成

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

sor什么是
out.1[,4]
?考虑到你的代码,我想这是一个因素。如果是的话,问题可能来自它到数字的转换,而不是那样。@Vincent我想对out.1的第4列进行排序,所以我使用了
out.1[,4]
是的,我知道了,但我想知道这一列是什么。它是一个因素向量吗?(我猜)是数学家吗?字符数?@Vincent该列包含字符,我在排序时将其转换为数字。我当时的猜测是错误的。您能否提供一个可复制的示例,以便我们更好地了解发生了什么?
sor<-order(as.numeric(as.character(out.1[,4])))