Umbenennen von Spalten in mehrere dataframes, R

Ich versuche zu Spalten umbenennen von mehreren data.frames.

Um ein Beispiel zu geben, sagen wir, ich habe eine Liste von data.frames dfA, dfB und dfC. Ich schrieb eine Funktion changeNames Namen entsprechend und dann lapply wie folgt:

dfs <- list(dfA, dfB, dfC)
ChangeNames <- function(x) {
    names(x) <- c("A", "B", "C" )  
}
lapply(dfs, ChangeNames)

Aber dies funktioniert nicht wie erwartet. Es scheint, dass ich nicht die Zuordnung der neuen Namen für die data.frame, sondern nur die Erstellung der neuen Namen. Was mache ich hier falsch?

Vielen Dank im Voraus!

  • Nach der Zeile names(x) <- in Ihrer Funktion, fügen Sie return(x) oder einfach x. Andere, die Sie zurückgeben, nur names(x).
  • Danke für deine Antwort Arun! Wenn ich ad-return(x), bekomme ich eine outprint dfA, dfB und dfC, mit dem neuen Namen. Aber wenn ich die Namen(dfA), Namen(dfB) und Namen(dfC) danach, Sie immer noch die alten Spaltennamen. Meine Daten-frames sind auch sehr große, also ich bin nicht daran interessiert, Sie anzusehen. Nur verändert es die Spalte Namen.
  • lapply ändert sich nicht der Eingang. Es gibt keinen "change by reference" geschieht hier. Es wird alles getan, auf eine Kopie. Sie werden zuordnen müssen, um das Ergebnis zurück. tun: dfs <- lapply(dfs, ChangeNames)
  • Ok, die dfs ist jetzt eine große Liste mit dfA, dfB und dfC, mit der neuen columnnames. Ich bin immer noch interessiert an einer Zusammenarbeit mit der dfA, dfb eine dfC individuell, und individuell Sie haben immer noch die alten columnnames? Wie ordne ich das Ergebnis zurück auf die einzelnen dataframes?
  • gut, Sie weisen Sie zurück. dfA <- dfs[[1]]... ?
InformationsquelleAutor user2706593 | 2013-08-22
Schreibe einen Kommentar