Ich erstellte eine sehr einfache if ... else-Anweisung in RStudio und ich stieß auf das folgende Problem. Ich wäre sehr dankbar, wenn Sie einige Zeit, um einen Blick auf diese haben, nehmen könnten: -Eine sehr einfache if ... else-Anweisung erzeugt unerwartete Ergebnisse
(A) Codes: -
testing <- function(var1) {
if(var1 == "heart attack") {
col_no <- 11
col_no
} else if(var1 == "heart failure") {
col_no <- 17
col_no
} else if(var1 == "pneumonia") {
col_no <- 23
col_no
} else {"error"}
}
(B) Ausgabe: -
testing("heart attack")
# [1] 11
col_no
# Error: object 'col_no' not found
testing("heart failure")
# [1] 17
col_no
# Error: object 'col_no' not found
testing("pneumonia")
# [1] 23
col_no
# Error: object 'col_no' not found
Als ich in "testing (" heart failure ")" eingegeben, habe ich erwartet, dass der Wert von col_no 17 statt eines Fehlers ist.
In ähnlicher Weise, als ich "testing (" pneumonia ") eintippte, erwartete ich den Wert von col_no 23 statt eines Fehlers zu sein.
Bitte helfen!
Das Objekt 'col_no 'ist nur lokal für die Funktion' testing() '. Bitte lesen Sie über Scoping in R. Sie müssen die Funktion wie folgt aufrufen: 'col_no <- testing (" heart attack ")' – jogo
Setzen Sie 'col_no << - 11', um das Funktionsobjekt der Benutzerumgebung zuzuordnen. –
@AdamQuek nein tue das nicht, ordne einfach das Ergebnis zu: 'col_no <- testing (...)' – Cath