Da die Frage auch ein stringr::str_split
erwähnt, eine stringr Weise könnte hilfreich sein, auch nützlich sein.
Sie können str_split
mit fixed(<YOUR_DELIMITER_STRING_HERE>, ignore_case = FALSE)
oder coll(pattern, ignore_case = FALSE, locale = "en", ...)
verwenden. Siehe stringr docs:
fixed
: Vergleichen Sie Literal Bytes in der Zeichenfolge. Dies ist sehr schnell, aber normalerweise nicht das, was Sie für Nicht-ASCII-Zeichensätze wollen.
coll
Vergleichen Saiten Standard Kollatierungsregeln
respektieren Siehe folgende R Demo:
> str_split(str, fixed("x*"))
[[1]]
[1] "abc" "def" "ghi"
Sortierungen besser sind mit einem Buchstaben dargestellt, die zwei Darstellungen haben:
> x <- c("Str1\u00e1Str2", "Str3a\u0301Str4")
> str_split(x, fixed("\u00e1"), simplify=TRUE)
[,1] [,2]
[1,] "Str1" "Str2"
[2,] "Str3áStr4" ""
> str_split(x, coll("\u00e1"), simplify=TRUE)
[,1] [,2]
[1,] "Str1" "Str2"
[2,] "Str3" "Str4"
A note about fixed()
:
fixed(x)
entspricht nur der genauen Bytefolge, die von x
angegeben wird. Dies ist ein sehr begrenztes "Muster", aber die Einschränkung kann die Anpassung viel schneller machen. Vorsicht bei der Verwendung von fixed()
mit nicht-englischen Daten. Es ist problematisch, weil es oft mehrere Möglichkeiten gibt, dasselbe Zeichen darzustellen. Zum Beispiel gibt es zwei Möglichkeiten, "á" zu definieren: entweder als einzelnes Zeichen oder als "a" plus Akzent. ...
coll(x)
sucht nach einer Übereinstimmung mit x unter Verwendung von Kollationsregeln in menschlicher Sprache und ist besonders wichtig, wenn Sie die Groß-/Kleinschreibung nicht beachten wollen. Die Regeln für die Sortierung unterscheiden sich auf der ganzen Welt. Daher müssen Sie auch einen Gebietsschema-Parameter angeben.
Das gleiche wie 'strsplit (str,'x [*] ')' .. – geotheory
Ah ja. Ich vermute, 'str_split' hat keine Methode .. – geotheory