Jak używać str_extract w r (z przykładami)


Funkcja str_extract() pakietu stringr w R może zostać użyta do wyodrębnienia pasujących wzorców do ciągu znaków.

Ta funkcja używa następującej składni:

 str_extract(string, pattern)

Złoto:

  • ciąg znaków: wektor znakowy
  • wzór: Wzór do wyodrębnienia

Poniższe przykłady pokazują, jak w praktyce wykorzystać tę funkcję.

Przykład 1: Wyodrębnij wzór z ciągu

Poniższy kod pokazuje, jak wyodrębnić ciąg „ther” z określonego ciągu w R:

 library (stringr)

#define string
some_string <- "Hey there my name is Doug"

#extract "ther" from string
str_extract(some_string, " ther ")

[1] “other”

Wzorzec „ther” został pomyślnie wyodrębniony z ciągu znaków.

Zauważ, że jeśli spróbujemy wyodrębnić wzorzec, który nie istnieje w ciągu, w rezultacie otrzymamy po prostu NA :

 library (stringr)

#define string
some_string <- "Hey there my name is Doug"

#attempt to extract "apple" from string
str_extract(some_string, " apple ")

[1] NA

Ponieważ w ciągu nie istniał wzorzec „jabłko”, zwrócono wartość NA .

Przykład 2: Wyodrębnij wartości liczbowe z ciągu znaków

Poniższy kod pokazuje, jak użyć wyrażenia regularnego \\d+ do wyodrębnienia z ciągu znaków tylko wartości numerycznych:

 library (stringr)

#define string
some_string <- "There are 350 apples over there"

#extract only numeric values from string
str_extract(some_string, " \\d+ ")

[1] "350"

Przykład 3: Wyodrębnij znaki z wektora ciągów

Poniższy kod pokazuje, jak używać wyrażenia regularnego [az]+ do wyodrębniania tylko znaków z wektora ciągów znaków:

 library (stringr)

#define vector of strings
some_strings <- c("4 apples", "3 bananas", "7 oranges")

#extract only characters from each string in vector
str_extract(some_strings, “ [az]+ ”)

[1] “apples” “bananas” “oranges”

Należy pamiętać, że zwracane są tylko znaki z każdego ciągu.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:

Jak używać str_replace w R
Jak używać str_split w R
Jak używać str_detect w R

Dodaj komentarz

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