O: jak używać strsplit() z wieloma ogranicznikami


Możesz użyć następującej podstawowej składni z funkcją strsplit() w R, aby podzielić ciąg na części w oparciu o wiele ograniczników:

 strsplit(my_string, ' [,& ]+ ')

Ten konkretny przykład dzieli ciąg o nazwie mój_ciąg za każdym razem, gdy napotka jeden z następujących trzech ograniczników:

  • Aby zamówić ( , )
  • Ampersand ( & )
  • Obszar

Należy pamiętać, że znaki w nawiasach wskazują, które ograniczniki należy wyszukiwać, a znak + wskazuje, że w rzędzie może znajdować się wiele ograniczników (na przykład w rzędzie może znajdować się wiele spacji).

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: użyj strsplit() z wieloma ogranicznikami w R

Załóżmy, że w R mamy następujący ciąg znaków:

 #create string
my_string <- 'this is a, string & with seven words'

Jeśli użyjemy funkcji strsplit() do podziału łańcucha za każdym razem, gdy napotkana zostanie spacja, otrzymamy następujący wynik:

 #split string based on spaces
strsplit(my_string, ' ')

[[1]]
 [1] "this" "is" "a," "string" "&" "with" "" ""      
 [9] “seven” “words”

Funkcja strsplit() dzieli ciąg znaków po napotkaniu spacji, ale nie obsługuje przecinków, ampersandów ani spacji wielokrotnych.

Aby podzielić ciąg znaków na podstawie każdego z tych ograniczników, możemy zastosować następującą składnię:

 #split string based on multiple delimiters
strsplit(my_string, ' [,& ]+ ')

[[1]]
[1] "this" "is" "a" "string" "with" "seven" "words" 

Funkcja ta jest w stanie podzielić ciąg znaków na podstawie trzech różnych ograniczników i poprawnie zwrócić tylko te słowa w ciągu, które nas interesują.

Zauważ, że w tym przykładzie do funkcji strsplit() dodaliśmy trzy ograniczniki w nawiasach, ale możesz określić dowolną liczbę ograniczników.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe operacje za pomocą dplyr:

Jak używać funkcji strsplit() w R do dzielenia elementów ciągu
Jak podzielić ciąg i uzyskać pierwszy element w R
Jak liczyć słowa w ciągu w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *