Sto tentando di rinominare colonne di più data.frame
s.Rinomina colonne in più dataframes, R
per fare un esempio, diciamo che ho una lista di data.frame
s dfA
, dfB
e dfC
. Ho scritto una funzione changeNames
per impostare i nomi di conseguenza e quindi utilizzato lapply
come segue:
dfs <- list(dfA, dfB, dfC)
ChangeNames <- function(x) {
names(x) <- c("A", "B", "C")
}
lapply(dfs, ChangeNames)
Tuttavia, questo non funziona come previsto. Sembra che non stia assegnando i nuovi nomi allo data.frame
, ma solo creando i nuovi nomi. Cosa sto facendo di sbagliato qui?
Grazie in anticipo!
Dopo i nomi linea '(x) <-' nella vostra funzione, aggiungere' ritorno (x) 'o semplicemente' x'. Altrimenti, stai restituendo solo 'nomi (x)'. – Arun
Grazie per la tua risposta Arun! Se restituisco (x), otterrò un outprint di dfA, dfB e dfC, con i nuovi nomi.Ma se visualizzo nomi (dfA), nomi (dfB) e nomi (dfC) in seguito, hanno ancora i vecchi nomi di colonna. I miei frame di dati sono anche molto grandi, quindi non sono interessato a visualizzarli. Cambiando solo i nomi delle colonne. – user2706593
'lapply' non modifica l'input. Non c'è nessun "cambiamento di riferimento" che accade qui. Tutto viene fatto su una copia. Dovrai assegnare il risultato indietro. do: 'dfs <- lapply (dfs, ChangeNames)' – Arun