这是一个任务问题,我班上的每个人都通过拆分解决了它,申请我想使用不同的方法并使用ddplyr并卡住了。
在这里,我必须生成一个函数best("State","Outcome")
,o / p是在输入的状态下具有最低死亡率的医院名称。
例如 - best("TX","heart failure")
o / p-“CYPRESS”
mycode的 -
在上面的步骤中,我已经阅读了文件&对data1中所需的列进行子集化
library(plyr)
data2 <- ddply(data1,.(State, Hospital.Name),
summarise, Heart.Attack=min(as.numeric(HA,na.rm=TRUE)))
data3 <- data2[complete.cases(data2),]
best <- function(State,outcome)
{
if(! State %in% data3$State) {
stop("invalid state")
} else if(State %in% data3$State && outcome == "Heart Attack") {
data4 <- subset(data3, State %in% data3$State, select=c(Hospital.Name))
return(nrow(data4))
}
}
这里当我试图只返回输入函数中的那些Hospitalnames
时,我得到所有的医院名称,如果我手动分配值,那么我得到正确的号码。的行。我不明白为什么它没有直接从函数State%in%data3$State
中获取价值。
答案 0 :(得分:0)
错误已解决......
我在循环中引入了空字符向量,为其分配了State值然后进行了比较。