Hallo zusammen!
Ich habe ein Problem mit einer if-Schleife. Ich hätte gerne, dass eine Spalte "active" hinzugefügt wird und wie folgt ausgefüllt wird:
Wenn die AktionId des Datensatzes 1,2,3 oder 14 ist (die ist in jeder Zeile eine andere), dann soll in meiner neuen active-Spalte ein "i" stehen, wenn andere Zahlen (sprich 3-14) dort stehen, dann ein "a".
Dafür habe ich folgenden Befehl getippt:
dat_fin$active <- if (dat_fin$AktionId <="3" | dat_fin$AktionId =="14"){dat$fin$active <- "i"} else {dat_fin$active <- "a"}
Letztenendes steht nun aber überall ein "i", unabhängig von der Nummer der AktionId. Zusätzlich kommt folgende Warnung:
"the condition has length > 1 and only the first element will be used"
Verstehe ich es richtig, dass sich R nur die AktionId der ersten Zeile anguckt und daraufhin einfach die gesamte active-Spalte füllt?
Falls ja, wie kann ich sagen, dass R sich um jede Zeile einzeln kümmern soll? (Es sind über 7.000 Zeilen...)
Liebe Grüße!
Hilfe bei if-Schleife
Re: Hilfe bei if-Schleife
Hallo MpolarFuchs,
denke immer daran: if (...) ... kann keinen Vektor bei der Bedingung verarbeiten; ifelse(...) kann das.
Und zukünftig beachten: viewtopic.php?f=20&t=29
Gruß, Jörg
Code: Alles auswählen
dat_fin$active <- ifelse(dat_fin$AktionId %in% 4:13, "a", "i")
Und zukünftig beachten: viewtopic.php?f=20&t=29
Gruß, Jörg
Re: Hilfe bei if-Schleife
Ich empfehle folgenden Link: http://if-schleife.de
Soviel sprachliche Genauigkeit macht sich bezahlt.
LG,
Bernhard
Soviel sprachliche Genauigkeit macht sich bezahlt.
LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: Hilfe bei if-Schleife
Ahh ok, die ifelse Funktion war mir nicht präsent. Super, dankeschön!jogo hat geschrieben: ↑Mo Jul 30, 2018 3:32 pm Hallo MpolarFuchs,
denke immer daran: if (...) ... kann keinen Vektor bei der Bedingung verarbeiten; ifelse(...) kann das.Code: Alles auswählen
dat_fin$active <- ifelse(dat_fin$AktionId %in% 4:13, "a", "i")
Und zukünftig beachten: viewtopic.php?f=20&t=29
Gruß, Jörg
Das mit dem Code wende ich dann nächstes Mal an.
Schönen Abend noch!