我想创建一个函数,您可以在其中输入文本字符串。然后,我希望此字符串输入对应于函数中的变量。但是,我不知道该如何处理。
目标是根据数据帧中的特定变量对数据帧进行排序。但是,用户可以通过输入字符串来输入此变量的抽象。例如,变量名是“攻击”,用户在调用该函数时可以输入文本“心脏病”。
best <- function(state, outcome) {
hospData <- read.csv(paste(getwd(), "/R_ProgAssignment3-data/outcome-of-care-measures.csv", sep=""));
stateSet <- subset(hospData, State == state);
attach(stateSet);
# translates input string to outcome variable based on type of disease
if (outcome == "heart attack") { outcome <- attack; }
if (outcome == "heart failure") { outcome <- failure; }
if (outcome == "pneumonia") { outcome <- pneum; }
#orders the state subset based on the outcome specified above
stateSet <- arrange(stateSet, outcome);
detach(stateSet);
#prints the first row of the state subset with corresponding hospital and ordered mortality rate (e.g. lowest first)
stateSet[1, c("Hospital.Name", outcome)];
}
这样,在上面的代码中,用户可以例如通过输入best(“ TX”,“ Heart Attack”),“ failure”来指定他或她想要分析的状态以及他想要数据的疾病或“肺炎”,其中TX是数据集hospData中Texas的缩写。 该文本必须与数据框中的变量相对应,分别是“攻击”,“故障”和“呼吸”,因为我想对此变量进行数据框排序。
最后,我想在最后的代码行中显示死亡率最低的医院。
我认为问题出在例如结果<-攻击,它可能只是将hospData $ attack或stateSet $ attack(这里是另一个问题,如何仅将子集中的数据链接起来?)的内容复制到变量'结果'。
总而言之,如何将字符串输入重新编码为数据帧中的正确变量,以便可以对特定变量的数据帧进行排序?
谢谢!