Próbuję zmienić nazwy kolumn wielu data.frame
s.Zmiana nazwy kolumn w wielu ramkach danych, R
Aby dać przykład, powiedzmy, że mam listę data.frame
s dfA
, dfB
i dfC
. Napisałem funkcję changeNames
ustawić odpowiednio nazwy, a następnie wykorzystywane lapply
następująco:
dfs <- list(dfA, dfB, dfC)
ChangeNames <- function(x) {
names(x) <- c("A", "B", "C")
}
lapply(dfs, ChangeNames)
Jednak to nie działa zgodnie z oczekiwaniami. Wygląda na to, że nie przypisuję nowych nazw do data.frame
, a jedynie do tworzenia nowych nazw. Co ja tu robię źle?
Z góry dziękuję!
po 'nazwy linii (x) <-' w swojej funkcji, dodać' return (x) 'lub po prostu' x'. W przeciwnym razie zwracasz tylko "nazwy (x)". – Arun
Dziękuję za odpowiedź Arun! Jeśli zwrócę reklamę (x), otrzymam wydruk dfA, dfB i dfC z nowymi nazwami.Ale jeśli później zobaczę nazwy (dfA), nazwy (dfB) i nazwy (dfC), nadal będą one miały stare nazwy kolumn. Moje ramki danych są również bardzo duże, więc nie jestem zainteresowany ich przeglądaniem. Zmienia tylko nazwy kolumn. – user2706593
'lapply' nie zmienia wejścia. Nie ma tutaj "zmiany przez odniesienie". Wszystko odbywa się na kopii. Musisz przypisać wynik z powrotem. do: 'dfs <- lapply (dfs, ChangeNames)' – Arun