Ich versuche, Spalten von mehreren data.frame
s umzubenennen.Umbenennen Spalten in mehreren Datenrahmen, R
ein Beispiel zu geben, sagen wir, ich dfA
, dfB
und dfC
eine Liste von data.frame
s haben. Ich schrieb eine Funktion changeNames
Namen entsprechend eingestellt und verwendet dann lapply
wie folgt:
dfs <- list(dfA, dfB, dfC)
ChangeNames <- function(x) {
names(x) <- c("A", "B", "C")
}
lapply(dfs, ChangeNames)
Dies ist jedoch nicht wie erwartet. Es sieht so aus, als würde ich die neuen Namen nicht der data.frame
zuweisen, sondern nur die neuen Namen erstellen. Was mache ich hier falsch?
Vielen Dank im Voraus!
nach der Zeile 'Namen (x) <-' in Ihrer Funktion, fügen Sie' return (x) 'oder einfach 'X'. Sonst gibst du nur 'names (x)' zurück. – Arun
Vielen Dank für Ihre Antwort Arun! Wenn ich ad (x) zurückgebe, erhalte ich einen Outprint von dfA, dfB und dfC mit den neuen Namen.Aber wenn ich Namen (dfA), Namen (dfB) und Namen (dfC) danach ansehe, haben sie immer noch die alten Spaltennamen. Meine Datenrahmen sind auch sehr groß, so dass ich sie nicht sehen möchte. Nur dort ändern Spaltennamen. – user2706593
'lapply' ändert die Eingabe nicht. Es gibt keine "Änderung durch Referenz", die hier passiert. Alles wird auf einer Kopie gemacht. Sie müssen das Ergebnis zurück zuweisen. do: 'dfs <- lapply (dfs, ChangeNames)' – Arun