Ho un numero elevato di set di dati contenenti ciascuno un lungo elenco di nomi di colonne. In alcuni file i nomi delle colonne sono tutti maiuscoli e in alcuni file solo la prima lettera dei nomi delle colonne è in maiuscolo. Devo aggiungere i set di dati e ho pensato che il modo più semplice per far corrispondere i nomi delle colonne tra i set di dati sarebbe quello di convertire i nomi di tutti i capitali in nomi con solo la prima lettera in maiuscolo.Cambia maiuscole/minuscole dei nomi delle colonne
Spero di trovare una soluzione generale, forse anche un one-liner.
Ecco il mio set di dati di esempio. I nomi desiderati sono inclusi nelle istruzioni names
.
my.data2 <- "
landuse units grade CLAY LINCOLN BASINANDRANGE MCCARTNEY MAPLE
apple acres AAA 0 2 3 4 6
apple acres AA 1000 900 NA NA 700
pear acres AA 10.0 20 NA 30.0 40
peach acres AAA 500 400 350 300 200
"
my.data2 <- read.table(textConnection(my.data2), header=TRUE)
names(my.data2)[names(my.data2)=="CLAY"] <- "Clay"
names(my.data2)[names(my.data2)=="BASINANDRANGE"] <- "BasinandRange"
names(my.data2)[names(my.data2)=="LINCOLN"] <- "Lincoln"
names(my.data2)[names(my.data2)=="MCCARTNEY"] <- "McCartney"
names(my.data2)[names(my.data2)=="MAPLE"] <- "Maple"
my.data2
Si noti che ho incluso i nomi e McCartney
BasinandRange
per rendere le cose più realistico e più difficile. Tuttavia, se riesco a trovare un one-liner per gestire il 95% dei nomi e utilizzare le precedenti dichiarazioni names
per affrontare complicazioni come McCartney
e BasinandRange
sarebbe fantastico.
Ho cercato su Internet, inclusi gli archivi StackOverflow, senza trovare una soluzione. Scusa se ne ho trascurato uno. Grazie per tutto l'aiuto.
Probabilmente sarebbe più facile se convertito tutti i nomi a tutto maiuscolo o tutto minuscolo utilizzando 'toupper' o' tolower', rispettivamente. Convertirli in case miste sarà più difficile. –