Entfernen von führenden Nullen aus alphanumerischen Zeichen in R
Ich habe einen Charakter-Vektor d
mit alphanumerischen Zeichen
d <- c("012309 template", "separate 00340", "00045", "890 098", "3405 garage", "matter00908")
d
[1] "012309 template" "separate 00340" "00045" "890 098" "3405 garage" "matter00908"
Wie kann ich entfernen Sie die führenden Nullen aus allen zahlen in R?
as.numeric
wird entfernen Sie alle führenden Nullen in numerischen und integer-Vektoren. Ich habe versucht gsub
mit regex
konnte aber nicht die gewünschten Ergebnisse.
Die erwartete Ausgabe ist wie folgt
out <- c("12309 template", "seperate 340", "45", "890 98", "3405 garage", "matter908")
out
[1] "12309 template" "seperate 340" "45" "890 98" "3405 garage" "matter908"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnte man eine negative lookbehind zu beseitigen, 0, es sei denn mit einem vorangestellten Ziffer:
Andere Weise mit regex:
Hier ist die Lösung die Nutzung
stri_replace_all_regex
von der stringi Paket:Erklärung: Wir sind passend für alle Sequenzen von Ziffern innerhalb von Wortgrenzen (
\b
). Nachfolgende Nullen aufeinander abgestimmt sind gierig (0+
). Die restlichen Ziffern (\d
bezeichnet eine beliebige Ziffer,\d+
bezeichnet, deren nicht-leere Sequenz) erfasst werden, innerhalb einer Gruppe ((...)
). Dann ersetzen wir alle solche Spiele mit der Gruppe-erfasst Zeug nur.Wenn Sie möchten, auch entfernen möchten 0s innerhalb von Wörtern (wie in deinem Beispiel), einfach weglassen
\b
und rufen:\d
kennzeichnet jede Ziffer\d+
bezeichnet, deren nicht-leere Sequenz