Ich habe zuerst auf this question verwiesen, aber die Antworten haben in meinem Fall nicht geholfen.R: Entfernen führende Nullen vom Anfang einer Zeichenfolge
Ich habe eine Liste, in der jede Komponente Elemente beginnend mit Zahlen gefolgt von Wörtern (Zeichen) enthält. Einige der Zahlen am Anfang der Elemente haben eine oder mehrere führende Nullen. Hier ist kleiner Teil der Liste:
x <- list(el1 = c("0010 First",
"0200 Second",
"0300 Third",
"4000 Fourth",
"0 Undefined",
"60838 Random",
"903200 Haphazard"),
el2 = c("0100 Hundredth",
"0200 Two hundredth",
"0300 Three hundredth",
"0040 Fortieth",
"0 Undefined",
"949848 Random",
"202626 Haphazard"),
el3 = c("0010 First",
"0200 Second",
"0300 Third",
"0100 Hundredth",
"0200 Two hundredth",
"0300 Three hundredth",
"0 Undefined",
"60838 Random",
"20200 Haphazard"))
Was ich erreichen will ist es, die führenden Nullen zu entfernen, wo sie verfügbar sind, und haben immer noch die einzige Null am Anfang 0 Undefined
sowie alle anderen Elemente, die nicht fangen mit führende Nullen. Das heißt, die folgende Liste zu haben:
x <- list(el1 = c("10 First",
"200 Second",
"300 Third",
"4000 Fourth",
"0 Undefined",
"60838 Random",
"903200 Haphazard"),
el2 = c("100 Hundredth",
"200 Two hundredth",
"300 Three hundredth",
"40 Fortieth",
"0 Undefined",
"949848 Random",
"202626 Haphazard"),
el3 = c("10 First",
"200 Second",
"300 Third",
"100 Hundredth",
"200 Two hundredth",
"300 Three hundredth",
"0 Undefined",
"60838 Random",
"20200 Haphazard"))
Ich bin seit Stunden ohne Erfolg gegangen. Das Beste, was ich tun könnte, ist dies:
lapply(x, function(i) {
ifelse(grep(pattern = "^0+[1-9]", x = i),
gsub(pattern = "^0+", replacement = "", x = i), i)
})
Aber es gibt nur diese Elemente in der Liste Komponenten, bei denen es Nullen wurden führende, nicht aber der Rest ohne und auch ohne 0 Undefined
.
Kann jemand helfen?
Es funktioniert perfekt angeben! Vielen Dank! – panman
Sie können den Parameter 'perl = TRUE' weglassen, der nicht wirklich benötigt wird. 'lapply (x, Funktion (y) sub ('^ 0 + ([1-9])', '\\ 1', y))' – hwnd
@hwnd: Danke! – panman