В приведенном ниже коде при вызове функции best () вызывается оператор if с «неправильным условием, попробуйте еще раз», несмотря на то, что аргумент результата имеет сердечный приступ в качестве входных данных. Почему это так и что можно сделать, чтобы предотвратить такие случаи?
best("CA","heart attack")
best <- function(state, outcome) {
#read file function
dataTable <- read.csv("outcome.csv", header = TRUE)
choice <- state
stateOfChoice <- dataTable[which(dataTable$state == choice),]
if(outcome != "heart failure" || outcome != "heart attack" || outcome != "pneumonia"){
print("wrong condition, try again")
main()
}
else if (outcome == "heart attack"){
#subsetting,selecting column of "Lower mortality estimate [xxxSpecified Outcomexxx ]" & the Hospital name attach to it
heart_attack <- stateOfChoice[which.min(stateOfChoice$Lower.Mortality.Estimate...Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack),]
hospital <- heart_attack$Hospital.Name
return(hospital)
}
else if (outcome == "heart failure"){
heart_failure <- stateOfChoice[which.min(stateOfChoice$Lower.Mortality.Estimate...Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure),]
hospital <- heart_failure$Hospital.Name
return(hospital)
}
else if (outcome == "pneumonia"){
pneumonia <- stateOfChoice[which.min(stateOfChoice$Lower.Mortality.Estimate...Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia),]
hospital <- pneumonia$Hospital.Name
return(hospital)
}
}
main <- function() {
print("Type Heart Attack, .....")
outcome <- readline(prompt="Type your selection ")
print("Select state")
state <- readline(prompt ="Type in your selection")
best(state,outcome)
}
main()