【发布时间】:2016-05-12 04:44:42
【问题描述】:
我正在学习 R,并试图解决 Coursera 最佳医院的任务。出于某种原因,我的函数的结果不一致。它仅在 6 个样本输出中的 4 个中给出正确答案。我浏览了互联网,已经摆脱了一路上的所有警告。但无法弄清楚功能错误。感谢您的时间以及您可以就如何改进功能提供的任何建设性的 cmets。非常感谢大家。
best <- function (state, outcome) {
data <- read.csv("outcome-of-care-measures.csv", header = TRUE, colClasses = "character",
na.strings = "Not Available")
select_o <- if (outcome == "heart attack") {
"Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack"
} else if (outcome == "heart failure") {
"Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure"
} else if (outcome == "pneumonia") {
"Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia"
} else {
stop("invalid outcome")
}
for (i in nrow(data)) {
if(data$State[i] != state) {
stop("invalid state")}
}
best_data <- data[data$State == state, c("Hospital.Name", select_o)]
na.omit(best_data)
best_data[, select_o] <- as.numeric(best_data[, select_o])
ordered <- order(best_data[, select_o], best_data[, "Hospital.Name"])
as.character(best_data[, "Hospital.Name"][ordered[1]])
}
当我测试样本输出时,我得到以下结果:
> best("TX", "heart attack")
[1] "CYPRESS FAIRBANKS MEDICAL CENTER"
正确
> best("TX", "heart failure")
[1] "FORT DUNCAN MEDICAL CENTER"
正确
> best("MD", "heart attack")
Error in best("MD", "heart attack") : invalid state
这里应该打印“约翰霍普金斯医院”
> best("MD", "pneumonia")
Error in best("MD", "pneumonia") : invalid state
这里还有“大巴尔的摩医疗中心”
> best("BB", "heart attack")
Error in best("BB", "heart attack") : invalid state
正确
> best("NY", "hert attack")
Error in best("NY", "hert attack") : invalid outcome
正确
【问题讨论】:
-
不清楚你的函数试图做什么。我建议您使用实际目标、输入数据示例以及您期望的输出来编辑您的问题。阅读how to make a great reproducible example。这会让其他人更有可能帮助你。