Ersetzen von Zeichen in der Spalte Namen gsub
Lese ich in einem Haufen von CSVs, die haben Sachen wie "Umsatz - Tausende" in den Titel und kommen in R als "sales...Tausende". Ich möchte einen regulären Ausdruck zu verwenden (oder andere einfache Methode) diese bereinigen.
Ich kann nicht herausfinden, warum dies 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 ich bin in Ordnung verlassen der Zeitraum zwischen den Wörtern, wenn das Auftritt.
Danke.
Ersatz erfolgt lokal innerhalb der Funktion, nicht Global. Wenn Sie
Danke für die schnelle Antwort! Können Sie geben Sie die Funktion, wie muss es geschrieben werden? Ich versucht, indem Sie
Sie müssen auch entweder verwenden Sie aktualisierte Daten-frame zu überschreiben der vorhandenen Daten-frame, oder weisen Sie auf neue variable. Die original-Daten-frame wird nicht verändert durch die Funktion selbst auch du hast
Definieren
d ' Oh, diesen letzten Schritt mit der Zuordnung! Eindeutig das Ergebnis einer langen Woche. Vielen Dank für die Hilfe.
return(x)
auf der letzten Zeile der Funktion, erhalten Sie den aktualisierten Daten-frame.Danke für die schnelle Antwort! Können Sie geben Sie die Funktion, wie muss es geschrieben werden? Ich versucht, indem Sie
return(x)
in den code und bin nicht immer die Ergebnisse, die ich erwarte. Kann ich es drucken Sie den Spaltennamen oder drucken Sie einen dataframe mit den neuen Spaltennamen, aber weder der Versuch, tatsächlich geändert hat die Daten im Rahmen der globalen Umwelt.Sie müssen auch entweder verwenden Sie aktualisierte Daten-frame zu überschreiben der vorhandenen Daten-frame, oder weisen Sie auf neue variable. Die original-Daten-frame wird nicht verändert durch die Funktion selbst auch du hast
return(x)
.Definieren
colClean <- function(x){ colnames(x) <- gsub("\\.\\.+", ".", colnames(x)); x }
tun, und dann a <- colClean(a)
zu aktualisieren a
d ' Oh, diesen letzten Schritt mit der Zuordnung! Eindeutig das Ergebnis einer langen Woche. Vielen Dank für die Hilfe.
InformationsquelleAutor yake84 | 2016-09-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
können Sie
gsub
Funktion zu ersetzen.
mit einem anderen Sonderzeichen wie#
.InformationsquelleAutor Rajnish Kumar
Reich Scriven hatte die Antwort:
Definieren
tun, und dann
zu aktualisieren
InformationsquelleAutor yake84