I'm making a function that takes outcome
as an input. outcome
makes reference to a column name in my data.frame. When using my function I want to be able to input "heart attack"
as the outcome, even though the column name is heart.attack
. I want to be able to reference to my column from the input in outcome. Below is what I've so far.
rankall <- function(outcome, num = "best") {
data <- read.csv("rprog_data_ProgAssignment3-data/outcome-of-care-measures.csv", colClasses = "character")
names(data)[names(data)=="Hospital.30.Day.Death..Mortality..Rates.from.Heart.Failure"] <- "heart.failure"
names(data)[names(data)=="Hospital.30.Day.Death..Mortality..Rates.from.Heart.Attack"] <- "heart.attack"
names(data)[names(data)=="Hospital.30.Day.Death..Mortality..Rates.from.Pneumonia"] <- "pneumonia"
data$heart.attack <- suppressWarnings(as.numeric(data$heart.attack))
data$heart.failure <- suppressWarnings(as.numeric(data$heart.failure))
data$pneumonia <- suppressWarnings(as.numeric(data$pneumonia))
if(outcome=="heart failure"){
outcome <- data$heart.attack
} else if(outcome=="heart attack"){
outcome <- data$heart.attack
} else if(outcome=="pneumonia"){
outcome <- data$pneumonia
} else{
stop("Invalid Outcome")
}
data <- select(data,Hospital.Name,State,outcome)
data <- data %>%
group_by(State) %>%
mutate(my_ranks = order(order(outcome, Hospital.Name, decreasing = T)))
if(num=="best"){
num=1
data <- subset(data,data$my_ranks==num)
} else if(num=="worst"){
num=nrow(data)
}
}