未能为R中的if()设置正确的条件
链接到我的数据: 说实话,这实际上不是我的剧本,我从一些资料中得到了它,试着把它分解,然后,试着根据我的知识重写它 这是我的剧本未能为R中的if()设置正确的条件,r,R,链接到我的数据: 说实话,这实际上不是我的剧本,我从一些资料中得到了它,试着把它分解,然后,试着根据我的知识重写它 这是我的剧本 rankhospital<- function(state, outcome, num = "best"){ data<- read.csv("outcome-of-care-measures.csv", colClasses = "character") outcomes<- c("heart attack", "
rankhospital<- function(state, outcome, num = "best"){
data<- read.csv("outcome-of-care-measures.csv", colClasses = "character")
outcomes<- c("heart attack", "heart failure", "pneumonia")
if ( state %in% data$State == FALSE){ stop("invalid state!")}
if (outcome %in% outcomes == FALSE){stop("invalid outcome")}
if(num != "best" && num != "worst" && num%%1 != 0){stop("invalid num")}
data<- data[, c(2, 7, 11, 17, 23)]
names(data)<- list("name", "state", "heart attack", "heart failure", "pneumonia")
data<- data[data$State == state & data[outcome] != "Not Available", ]
data[ , outcome] <- as.numeric(data[ , outcome ] )
max<- nrow(data)
if (num == "best"){num <- 1}
if (num == "worst"){num == as.numeric(max)}
if (num > max){ return(NA)}
data<- data[order(data[, 1]), ]
data<- data[order(data[,outcome]), ]
data[num, "name"]
}
对于参数num的任何值,我都得到“NA”,即使numnum
作为函数变量,然后尝试在函数中重新定义它
函数的最后一部分应如下所示:
if(num == "best"){temprow <- 1}
if(num == "worst"){temprow <- nrow(data)}
if(is.numeric(num) & num %in% 1:nrow(data)){temprow <- num}
if(is.numeric(num) & !(num %in% 1:nrow(data))){stop("ranking out of bounds!")}
data<- data[order(data[, 1]), ]
data<- data[order(data[,outcome]), ]
data[temprow, "name"]
if(num==“best”){temprownum==as.numeric(max)
是一个条件,num谢谢,当我更改为num时,我只是按照你说的做,但仍然得到NA作为结果请读取数据并复制(dput(head(data[,c(2,7,11,17,23)])的输出)
进入你的问题。我不喜欢从未知位置下载.zip文件。
rankhospital("MD", "heart attack", "worst")
[1] NA
if(num == "best"){temprow <- 1}
if(num == "worst"){temprow <- nrow(data)}
if(is.numeric(num) & num %in% 1:nrow(data)){temprow <- num}
if(is.numeric(num) & !(num %in% 1:nrow(data))){stop("ranking out of bounds!")}
data<- data[order(data[, 1]), ]
data<- data[order(data[,outcome]), ]
data[temprow, "name"]