错误:位置1的尺寸(1)不正确,预期为194“

时间:2019-07-11 17:17:57

标签: r

我正在研究R中的功能“医院”,以按州的结果对医院进行排名。它包含三个参数:1)状态,2)结果(“心脏病”,“心力衰竭”或“肺炎”),3)num:该状态下该州医院的排名。例如,呼叫:

rankhospital(“ MD”,“心力衰竭”,5)

rankhospital(“ MD”,“心力衰竭”,“最佳”)。 “最佳”意味着排名第一。

我尝试将“ num”分为两类:1)字符串(“ best”或“ worst”)和2)整数。当我运行代码时,在输入“ num”作为整数时,会遇到“错误:位置1处的错误:不正确的大小(1),预期:194”。

我试图找到错误的含义,但是只找到简短的介绍,例如:

“ 194:预期为asm字符串”

,我找不到更多详细信息。我希望当我输入“ num”作为字符串时,因为有引号,所以它可以自动识别为字符。由于没有引号,因此该数字可以被视为整数。也许我错了,但我不知道如何解决。期待您的见解。谢谢。

这是我的代码:

data <- read.csv("outcome-of-care-measures.csv", na.strings = "Not Available", stringsAsFactors=FALSE)
# select column by position
df_selected <- data[c(2, 7, 11, 17, 23)]
df_new <- na.omit(df_selected)
# rename columns
names(df_new) <- c("Hospital.Name", "State", "heart attack", "heart failure", "pneumonia")

rankhospital <- function(state, outcome, num = "best") {
    # select related outcome: eg. heart attack, or heart failure, or pneumonia
    dat <- select(df_new, c("Hospital.Name", "State", outcome))
    # filter data of a specific state
    state_data <- filter(dat, State == state)
    # sort the data according to the outcome which are rates
    data_arranged <- arrange(state_data, outcome)
    if(num == "best") {
        return(data_arranged[1,1])
    }
    if(num == "worst") {
        return(data_arranged[nrow(data_arranged), 1])
    }
    if(num <= nrow(data_arranged)) {
        return(data_arranged[num, 1])
    }
    if(num > nrow(data_arranged)) {
        return(stop("NA"))
    }
}

0 个答案:

没有答案