Odp.: jak sprawdzić, czy znak znajduje się w ciągu znaków
Aby sprawdzić, czy znak znajduje się w ciągu znaków w R, możesz użyć następujących metod:
Metoda 1: Sprawdź, czy znak znajduje się w ciągu, używając Base R
grepl(my_character, my_string, fixed= TRUE )
Metoda 2: Sprawdź, czy znak znajduje się w ciągu znaków, używając pakietu stringr
library (stringr)
str_detect(my_string, my_character)
Poniższe przykłady pokazują, jak zastosować każdą metodę w praktyce.
Przykład 1: Sprawdź, czy znak znajduje się w ciągu, używając Base R
Poniższy kod pokazuje, jak sprawdzić, czy „Doug” istnieje w określonym ciągu w R:
#define character to look for
my_character <- "Doug"
#define string
my_string <- "Hey my name is Douglas"
#check if "Doug" is in string
grepl(my_character, my_string, fixed= TRUE )
[1] TRUE
Ponieważ w ciągu istnieje słowo „Doug”, funkcja grepl() zwraca TRU E.
Załóżmy, że zamiast tego sprawdzimy, czy w ciągu istnieje słowo „Steve”:
#define character to look for
my_character <- "Steve"
#define string
my_string <- "Hey my name is Douglas"
#check if "Steve" is in string
grepl(my_character, my_string, fixed= TRUE )
[1] FALSE
Ponieważ w ciągu nie ma słowa „Steve”, funkcja grepl() zwraca FAŁSZ .
Przykład 2: Sprawdź, czy znak znajduje się w ciągu znaków, używając pakietu stringr
Poniższy kod pokazuje, jak używać funkcji str_detect() pakietu stringr do sprawdzania, czy ciąg „Doug” istnieje w określonym ciągu:
library (stringr)
#define character to look for
my_character <- "Doug"
#define string
my_string <- "Hey my name is Douglas"
#check if "Doug" is in string
str_detect(my_string, my_character)
[1] TRUE
Funkcja str_detect() zwraca PRAWDA , ponieważ w ciągu znaków znajduje się „Doug”.
Zauważ, że możemy również użyć następującej składni, aby sprawdzić, czy w ciągu znaków występuje wiele znaków:
library (stringr)
#define vector of characters to look for
my_characters <- c("Doug", "Steve", "name", "He")
#define string
my_string <- "Hey my name is Douglas"
#check if each character is in string
str_detect(my_string, my_characters)
[1] TRUE FALSE TRUE TRUE
Z wyniku możemy zobaczyć:
- „Doug” istnieje w łańcuchu.
- „Steve” nie istnieje na kanale.
- „Nazwa” istnieje w ciągu.
- „To” istnieje w ciągu.
Powiązane: Jak używać funkcji str_detect() w R (3 przykłady)
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Jak usunąć ostatni znak z łańcucha w R
Jak znaleźć lokalizację znaku w ciągu w R
Jak wybrać kolumny zawierające określony ciąg w R