Mam zestaw ramek danych z tymi samymi nagłówkami kolumn, z tym że niektóre nazwy kolumn są pisane dużymi literami, a niektóre małymi literami. Chcę przekonwertować wszystkie nazwy kolumn na małe litery, aby utworzyć jedną dużą ramkę danych.Jak ustawić nazwy kolumn na małe litery dla wielu ramek danych?
Nie mogę sprawić, by colnames()
zadziałał w dowolnej pętli lub zastosowałem opcję Pisanie. Z:
#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)
pojawia się następujący błąd:
Error in colnames(get(df)) <- tolower(colnames(get(df))) :
could not find function "get<-"
Jak zmienić wszystkie moje dataframes mieć małe nazwy kolumn?
Dlaczego nie zdarzyło mi się samodzielnie sporządzić listy ramek danych? Oczywiście to lepsze rozwiązanie. Przyjmuję odpowiedź, gdy tylko będę miał szansę wypróbować. –
To działa idealnie, a następnie mając ramki danych jako listę, uzyskanie wszystkich oddzielnych ramek danych w jeden duży plik df było tak proste, jak 'dane <-danie (dfList, rbind.fill). Dzięki i jestem bardzo wdzięczny tutaj konstruktywna i pomocna społeczność. –
Czy 'lapply (dfs, get)' naprawdę jest konieczne? Po prostu dostarczenie listy data.frames nie wystarczy? –