Ich versuche, eine neue Spalte zu einem vorhandenen R dataframe
hinzuzufügen, der je nach Wert innerhalb des entsprechenden Zeilenwerts eine neue Spalte hinzufügen wird. Wenn der Wert 1
neuen Spaltenwert sollte one
enthalten, wenn der Wert 2
neuen Spaltenwert sollte two
enthalten, sonst three or more
Spalte mit benutzerdefiniertem Wert zu Datenframe hinzufügen
Dieser Code:
mydf <- data.frame(a = 1:6,
b = rep("reproducible", 6),
c = rep("example", 6),
stringsAsFactors = FALSE)
mydf
macht:
Verwendung Code:
mydf["encoded"] <- { if (mydf['a'] == 1) 'one' else if (mydf['a'] == 2) 'two' else 'three or more' }
mydf
macht:
Eine Warnung wird auch erzeugt:
Warning message in if (mydf["a"] == 1) "one" else if (mydf["a"] == 2) "two" else "three or more":
“the condition has length > 1 and only the first element will be used”
wird eine neue Spalte hinzugefügt dataframe
aber alle Werte sind gleich: one
Ich habe nicht die Logik implementiert, um die neuen Spaltenwerte korrekt hinzuzufügen?
Das ist besser als die Hand, die Bedingungen zu schreiben :) wie Sie antworten, +1 – Wen