Ich denke, Sie haben führende/nacheilende Räume vom Ausgang 'valeur'. Wir können diese mit gsub
entfernen. Wir passen ein oder mehrere Leerzeichen vom Anfang des Strings (^\\s+
) oder (|
) Leerzeichen am Ende des Strings an (\\s+$
), ersetzen durch ''
.
valeur1 <- gsub('^\\s+|\\s+$', '', valeur)
Wenn wir die ersten Nicht-Leerzeichen benötigen, passen wir den Raum (\\s+
), gefolgt von nicht-Raum (\\S+
) bis zum Ende des Strings und ersetzen mit ''
.
sub('\\s+\\S+$', '', valeur1)
#[1] "8:01" "17:46" NA NA NA NA "8:01" "17:46"
Um die letzten Nicht-Leerzeichen zu erhalten, verwenden sub
ein oder mehrere Zeichen übereinstimmen, die von einem oder mehreren Raum kein Raum (\\S+
) vom Anfang des Strings (‚^‘) gefolgt sind () und ersetzen Sie es durch ''
, um das letzte Nicht-Leerzeichen zu erhalten.
sub('^\\S+\\s+', '', valeur1)
#[1] "8:15" "18:00" NA NA NA NA "8:15" "18:00"
Das Obige kann in einem einzigen Schritt durchgeführt werden, wo wir durch eine oder mehr nicht gefolgt null oder mehr Raum am Anfang (^\\s*
) oder (|
) mit einem einem oder mehrere Zwischenraum (\\s+
) entsprechen Leerzeichen (\\S+
), gefolgt von null oder mehr Leerzeichen am Ende() und durch ''
ersetzen.
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 wir ein oder mehrere Nicht-Leerzeichen übereinstimmen am Anfang oder am Ende.
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
non_space Zeichen
stri_extract_last(valeur, regex='\\S+')
#[1] "8:15" "18:00" NA NA NA NA "8:15" "18:00"
dank perfekt! – giacomo