Ich kämpfe darum, herauszufinden, wie gsub
alles nach dem "Leerzeichen" des ersten Stundenwerts funktioniert .
as.data.frame(valeur)
valeur
1 8:01 8:15
2 17:46 18:00
3 <NA>
4 <NA>
5 <NA>
6 <NA>
7 8:01 8:15
8 17:46 18:00
Was ich brauche ist
valeur
1 8:01
2 17:46
3 <NA>
4 <NA>
5 <NA>
6 <NA>
7 8:01
8 17:46
Irgendeine Ahnung ?
Ich habe es versucht
gsub("[:blank:].*$","",valeur)
Fast
valeur = c(" 8:01 8:15 ", " 17:46 18:00 ", NA, NA, NA, NA, " 8:01 8:15 ",
" 17:46 18:00 ")
Ich denke, Sie haben führende / nacheilende Leerzeichen aus der 'Valeur'-Ausgabe. Wir können diese mit entfernen gsub
. Wir passen ein oder mehrere Leerzeichen vom Anfang des Strings ( ^\\s+
) oder ( |
) am Ende des Strings ( \\s+$
) an und ersetzen durch ''
.
valeur1 <- gsub('^\\s+|\\s+$', '', valeur)
Wenn wir die ersten Nicht-Leerzeichen benötigen, passen wir das Leerzeichen ( \\s+
) gefolgt von Nicht-Leerzeichen ( \\S+
) bis zum Ende der Zeichenfolge an und ersetzen es durch ''
.
sub('\\s+\\S+$', '', valeur1)
#[1] "8:01" "17:46" NA NA NA NA "8:01" "17:46"
Um die letzten Nicht-Leerzeichen sub
zu erhalten, müssen Sie ein oder mehrere Zeichen, die kein Leerzeichen ( \\S+
) sind, vom Anfang der Zeichenfolge ('^') gefolgt von einem oder mehreren Leerzeichen ( \\s+
) abgleichen und durch ''
das letzte ersetzen , um das letzte zu erhalten Nicht-Leerzeichen.
sub('^\\S+\\s+', '', valeur1)
#[1] "8:15" "18:00" NA NA NA NA "8:15" "18:00"
Dies kann in einem einzigen Schritt erfolgen, bei dem am Anfang ( ^\\s*
) oder ( |
) ein oder mehrere Leerzeichen ( \\s+
), gefolgt von einem oder mehreren Nicht-Leerzeichen ( \\S+
), gefolgt von null oder mehreren Leerzeichen, null oder mehr Leerzeichen übereinstimmen am Ende ( \\s*$
) und ersetzen durch ''
.
gsub("^\\s*|\\s+\\S+\\s*$","",valeur)
#[1] "8:01" "17:46" NA NA NA NA "8:01" "17:46"
Oder eine andere Option ist stri_extract_first
oder stri_extract_last
von library(stringi)
wo aus wir ein oder mehrere Nicht-Leerzeichen am Anfang oder Ende abgleichen.
library(stringi)
stri_extract_first(valeur, regex='\\S+')
#[1] "8:01" "17:46" NA NA NA NA "8:01" "17:46"
Für die last
Nicht-Leerzeichen
stri_extract_last(valeur, regex='\\S+')
#[1] "8:15" "18:00" NA NA NA NA "8:15" "18:00"
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen