Zeichen in Spaltennamen ersetzen gsub
Ich lese in einer Reihe von CSVs, die Dinge wie "Umsatz - Tausende" im Titel haben und in R als "Umsatz ... Tausende" vorkommen. Ich möchte einen regulären Ausdruck (oder eine andere einfache Methode) verwenden, um diese zu bereinigen.
Ich kann nicht herausfinden, warum das nicht funktioniert:
#mock data
a <- data.frame(this.is.fine = letters[1:5],
this...one...isnt = LETTERS[1:5])
#column names
colnames(a)
# [1] "this.is.fine" "this...one...isnt"
#function to remove multiple spaces
colClean <- function(x){
colnames(x) <- gsub("\\.\\.+", ".", colnames(x))
}
#run function
colClean(a)
#names go unaffected
colnames(a)
# [1] "this.is.fine" "this...one...isnt"
aber dieser Code macht:
#direct change to names
colnames(a) <- gsub("\\.\\.+", ".", colnames(a))
#new names
colnames(a)
# [1] "this.is.fine" "this.one.isnt"
Beachten Sie, dass es mir gut geht, wenn zwischen den Wörtern ein Zeitraum liegt.
Vielen Dank