0
我需要从CSV中选择大型数据集中的一列。基于函数字符参数在R中设置数据框
我有这个功能。两个字符参数 - 国家名称和名称。基于疾病名称,我需要选择大数据集中的右列来执行计算。
best <- function(state, outcome) {
OutcomeData <- read.csv("outcome-of-care-measures.csv", colClasses = "character")
其次,我试图给变量OutcomeCol
值,基于函数的参数结果。数字是OutcomeData
数据集中对应outcome
参数的列号。
I
## 2 - Hospital.Name
## 7 - State
## 11 - 30 Day mortality Heart Attack
## 17 - 30 Day mortality Heart Failure
## 23 - 30 Day mortality Pneumonia
## Choose Outcome for filtering data
if (outcome == "heart attack") {OutcomeCol <- 11}
if (outcome == "heart failure") {OutcomeCol <- 17}
if (outcome == "pneumonia") {OutcomeCol<- 23}
try(if (!exists("OutcomeCol")) {stop("invalid outcome")}, silent = TRUE)
但是,当我尝试运行功能最好(“TX”,“心力衰竭”)没有任何反应。如果我在if语句后尝试放置print(OutcomeCol)
- 它将返回NA。
错误在哪里?也许有另一种简单的方法来执行此操作?
您的功能没有'return'值或关闭! '}'...或者你只是没有完全粘贴它? – Frank
谢谢,@Frank!是的,这是功能的一部分,似乎没有工作,我找到了另一种正确的方法。 'deathColumn < - c(11,17,23) lookup < - data.frame(outcome,mortalityColumn) OutcomeCol < - lookup $ mortalityColumn [lookup $ results%in%outcome]' –
很酷,很高兴听到您的声音弄明白了,是的,制作一张查找表是一个很好的选择一系列“if”) – Frank