Ich möchte verwenden dplyr::mutate(), um mehrere neue Spalten in einem Datenrahmen zu erstellen. Die Spaltennamen und deren Inhalt sollten dynamisch generiert werden.
Beispieldaten von Iris:
library(dplyr)
iris <- tbl_df(iris)
Ich habe eine Funktion erstellt, um meine neuen Spalten aus dem zu mutieren Petal.Width Variablen :
multipetal <- function(df, n) {
varname <- paste("petal", n , sep=".")
df <- mutate(df, varname = Petal.Width * n) ## problem arises here
df
}
Jetzt erstelle ich eine Schleife, um meine Spalten zu erstellen:
for(i in 2:5) {
iris <- multipetal(df=iris, n=i)
}
Da mutate jedoch glaubt, dass varname ein Literalvariablenname ist, erstellt die Schleife nur eine neue Variable (als varname bezeichnet) anstelle von vier (als petal.2 - petal.5 bezeichnet).
Wie kann ich mutate()meinen dynamischen Namen als Variablennamen verwenden?
dplyrhat eine ganze Vignette über nicht standardmäßige Bewertung
mutate_, und aus den anderen Funktionen ist nicht ersichtlich, wie sie verwendet werden soll.