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