Ich habe ein data.frame
wie folgt aufgebaut:R Fund Zeilenwert auf Wert in einer anderen Spalte basiert, ohne ifelse
a b c d column_name
1 2 3 4 a
2 3 4 1 b
3 4 1 2 c
4 1 2 3 d
Jetzt möchte ich den Wert für jede Zeile erhalten, der Spalte, die den Namen übereinstimmt in Spaltenname. Ich baue dies mit einer ifelse
etwa so:
df$value <- ifelse(df$column_name=="a", df$a,
ifelse(df$column_name=="b", df$b,
ifelse(df$column_name=="c", df$c,
ifelse(df$column_name=="d", df$d, "NA"))))
jedoch nicht sehr hübsch und effizient ist. Bei mehr als 4 möglichen Spalten ist es unmöglich zu verwenden.
Kennt jemand einen effizienteren und schönen Weg? Ich versuchte apply()
, aber konnte es nicht zur Arbeit bringen.
Vielen Dank für die schnelle und klare Erklärung! – Jesse