Tengo un conjunto de marcos de datos con los mismos encabezados de columna, excepto que algunos de los nombres de columna están en mayúscula y algunos están en minúscula. Quiero convertir todos los nombres de columna en minúsculas para poder crear un gran marco de datos de todo.¿Cómo configuro los nombres de las columnas en minúsculas para múltiples dataframes?
Parece que no puedo obtener colnames()
para trabajar en ningún bucle o aplicar para escribir. Con :
#create dfs
df1<-data.frame("A" = 1:10, "B" = 2:11)
df2<-data.frame("a" = 3:12, "b" = 4:13)
df3<-data.frame("a" = 5:14, "b" = 6:15)
#I have many more dfs in my actual data
#make list of dfs, define lowercasing function, apply across df list
dfs<-ls(pattern = "df")
lowercols<-function(df){colnames(get(df))<-tolower(colnames(get(df)))}
lapply(dfs, lowercols)
me sale el siguiente error:
Error in colnames(get(df)) <- tolower(colnames(get(df))) :
could not find function "get<-"
¿Cómo cambio todos mis tramas de datos que tienen nombres de columna minúsculas?
¿Por qué no se me ocurrió hacer una lista de los marcos de datos? Por supuesto, esa es una mejor solución. Aceptaré la respuesta tan pronto como tenga la oportunidad de probarla. –
Eso funciona perfectamente, y luego tener los marcos de datos como una lista, obtener todos los marcos de datos separados en un gran df era tan simple como 'data <-dbl (dfList, rbind.fill)' Gracias y estoy muy agradecido de la comunidad constructiva y útil aquí. –
¿Es 'lapply (dfs, get)' realmente necesario? Simplemente el suministro de la lista de marcos de datos no sería suficiente? –