IF/then/ELSE in R
jeder.
Hoffentlich eine einfache syntax-Frage. Ich bin versucht, zu erstellen eine neue variable in einer Tabelle R, die sagen würden, "1", wenn mein patient war in dem Alter war ich bei der Suche, oder "0" für Nein. Alter, ich bin interessiert, ist zwischen 2-155. Der code läuft ohne Fehler, aber es funktioniert nicht. Wenn ich mir in meiner Tabelle, wird die neue variable sagen 1, obwohl die age4 ist 158 Hier ist was ich habe:
table$newvar <- if (table$age4>=2 && table$age4 <=155) {table$newvar=1} else {table$newvar=0}
Jede Hilfe ist willkommen! Vielen Dank im Voraus!
- R ist nicht SAS noch SPSS). Sie müssen studieren die grundlegenden tutorials und arbeiten Sie sich durch die Beispiele. Wenn Sie, was text Sie verwenden für diesen Zweck nicht erklären, die Unterschiede zwischen
if
undifelse
dann sollten Sie es wegwerfen. (Außerdem wird die Verwendung von "=" ist falsch.)
Du musst angemeldet sein, um einen Kommentar abzugeben.
Zwei änderungen vorgenommen werden sollen:
ifelse()
Funktion zum generieren des neuen Spalte Daten.&
logischen UND-operator kombiniert man die Ergebnisse der Vergleiche.Den Grund, warum dein code nicht funktioniert ist, weil die
if
- Anweisung und die&&
Betreiber sind nicht vektorisiert. Die&&
operator prüft nur das erste element jeder Operanden-Vektor, und gibt nur eine ein-element-Vektor repräsentiert das Ergebnis der logischen-UND auf diese beiden Eingangswerte. Dieif
Anweisung erwartet immer eine ein-element-Vektor, der für seine bedingte, und führt die if-Zweig, wenn das element ist true, oder der else-Zweig, wenn false.Wenn Sie ein multiple-element-Vektor der bedingten in der
if
- Anweisung erhalten Sie eine Warnung:Aber für einige ungerade Grund, Sie nicht eine Warnung erhalten, wenn Sie verwenden ein multiple-element-Vektor, als operand zu
&&
(oder||
):Deshalb Ihren code erschien, erfolgreich zu sein (und ich meine es nicht drucken, Warnung), aber es hat nicht wirklich das tun, was beabsichtigt war.
Beim Einsatz in arithmetischen
TRUE
undFALSE
geworden1
und0
so:Diese arbeiten auch: