不能在使用dplyr生成数据帧后在Function()中使用subset()

时间:2014-05-02 07:23:36

标签: r

这是一个任务问题,我班上的每个人都通过拆分解决了它,申请我想使用不同的方法并使用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中获取价值。

1 个答案:

答案 0 :(得分:0)

错误已解决......

我在循环中引入了空字符向量,为其分配了State值然后进行了比较。