У меня есть этот код, который получает три аргумента. Это сужается государством. Это тогда сужается условием. Наконец, он сужается по рангу больницы в зависимости от его состояния (сердечный приступ, сердечная недостаточность или пневмония). Для этого кода я работаю над частью кода, связанной с сердечной недостаточностью, поэтому две другие можно игнорировать. Функция заказа хорошо определяет частоту сердечной недостаточности. Однако после этого у меня возникают трудности с выбором рейтинга.
best("AK","heart failure", 3)
best <- function(state, outcome, num) {
#Reads the csv file
dataTable <- read.csv("outcome.csv", header = TRUE, stringsAsFactors = FALSE)
#Passes the state argument to the choice variable
choice <- state
stateOfChoice <- dataTable[dataTable$State == choice,]
#Makes sure that only three of outcomes found in the csv file are selected
if(outcome != "heart failure" && outcome != "heart attack" && outcome != "pneumonia"){
print("wrong condition, try again")
main()
}
#using the selected rows from above, return the minimum value of rate from heart attack and then use this selected row to find the hospital name
else if (outcome == "heart attack"){
heart_attack <- stateOfChoice[which.min(stateOfChoice$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack), ]
hospital <- heart_attack$Hospital.Name
return(hospital)
}
#Similar as above, but instead with heart failure
else if (outcome == "heart failure"){
orderState <- stateOfChoice[order(as.integer(stateOfChoice$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure), decreasing = FALSE),]
orderStateNum <- orderState$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure[[num]]
##heart_failure <- stateOfChoice[which.min(stateOfChoice$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure),]
hospital <- orderStateNum$Hospital.Name
return(hospital)
}
#Similar as above, but instead with pneumonia
else if (outcome == "pneumonia"){
pneumonia <- stateOfChoice[which.min(stateOfChoice$Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia),]
hospital <- pneumonia$Hospital.Name
return(hospital)
}
}
Например, вы можете видеть, что функция order правильно упорядочила строки по этой переменной из-за orderState <- stateOfChoice[order(as.integer(stateOfChoice$Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure),decreasing = FALSE),]
для условия heart failure
. Третий выбор должен быть #100
, что соответствует названию больницы Mat-su regional medical center
. Я не получаю это название больницы. Я получаю #101
, что соответствует районной больнице Бартлетта.
Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure
115 10.8
104 11.2
100 11.4
114 11.4
101 11.6
Данные здесь:
Пожалуйста, нажмите для набора данных