Benennen Sie die Spalten eines Datenrahmens um, indem Sie den Spaltennamen suchen

Ich schreibe einen Wrapper für ggplot, um mehrere Diagramme basierend auf verschiedenen Datensätzen zu erstellen. Während ich die Spaltennamen an die Funktion übergebe, muss ich die Spaltennamen umbenennen, damit ggplot die Referenz verstehen kann.

Ich habe jedoch Schwierigkeiten, die Spalten eines Datenrahmens umzubenennen

Hier ist ein Datenrahmen:

df <- data.frame(col1=1:3,col2=3:5,col3=6:8)

Hier sind meine Spaltennamen für die Suche:

col1_search <- "col1"
col2_search <- "col2"
col3_search <- "col3"

und hier sind Spaltennamen zum Ersetzen:

col1_replace <- "new_col1"
col2_replace <- "new_col2"
col3_replace <- "new_col3"

Wenn ich nach Spaltennamen suche, sortiert R die Spaltenindizes und ignoriert den Suchort.

Wenn ich beispielsweise den folgenden Code ausführe, erwarte ich, dass die neuen Header new_col1, new_col2 und new_col3 lauten. Stattdessen lauten die neuen Spaltennamen new_col3, new_col2 und new_col1

colnames(df)[names(df) %in% c(col3_search,col2_search,col1_search)] <- c(col3_replace,col2_replace,col1_replace)

Hat jemand eine Lösung, bei der ich nach Spaltennamen suchen und diese in dieser Reihenfolge ersetzen kann?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage