------------------------------------------------------------------------代码
rankhospital <- function(state, outcome, num = "best") {
## Read outcome data
data <- read.csv("outcome-of-care-measures.csv")
## Check that state and outcome are valid
state_flags<-FALSE
states<-levels(data[,7])[data[,7]]
for (i in 1:length(states)) {
if (state==states) {
state_flags<-TRUE
}
}
if (!state_flags) {
stop("invalid state")
}
if (!((outcome == "heart attack") | (outcome == "heart failure")
| (outcome == "pneumonia"))) {
stop("invalid outcome")
}
col <- if (outcome == "heart attack") {
11
} else if (outcome == "heart failure") {
17
} else {
23
}
data[, 2] <- as.character(data[, 2])
statedata <- data[grep(state, data$State), ]
orderdata <- statedata[order(statedata[, col], statedata[, 2], na.last = NA), ]
if(num == "best") {
orderdata[1, 2]
} else if(num == "worst") {
orderdata[nrow(orderdata), 2]
} else{
orderdata[num, 2]
}
## Return hospital name in that state with the given rank
## 30-day death rate
-----------------------------------------------------------------分割结束
为什么标红的类型转化语句存在与不存在会导致输出不同的结果呢,因为这个数据原本类型就是字符,为什么还需要转换类型?有大腿能帮忙答疑么?