O: sprawdź, czy ciąg zawiera wiele podciągów
Możesz użyć następujących metod w R, aby sprawdzić, czy ciąg zawiera wiele podciągów:
Metoda 1: Sprawdź, czy ciąg zawiera jeden z kilku podciągów
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , any )
Ta konkretna składnia sprawdza, czy każdy ciąg w kolumnie zespołu zawiera jeden z ciągów określonych w wektorze ciągu o nazwie find_strings .
Metoda 2: Sprawdź, czy ciąg zawiera wiele podciągów
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , all )
Ta konkretna składnia sprawdza, czy każdy ciąg w kolumnie zespołu zawiera wszystkie ciągi określone w wektorze ciągu zwanym find_strings .
Poniższe przykłady pokazują, jak w praktyce wykorzystać każdą metodę z następującą ramką danych w R:
#create data frame
df = data. frame (team=c('Good East Team', 'Good West Team', 'Great East Team',
'Great West Team', 'Bad East Team', 'Bad West Team'),
points=c(93, 99, 105, 110, 85, 88))
#view data frame
df
team points
1 Good East Team 93
2 Good West Team 99
3 Great East Team 105
4 Great West Team 110
5 Bad East Team 85
6 Bad West Team 88
Przykład 1: Sprawdź, czy ciąg zawiera jeden z kilku podciągów
Możemy użyć następującej składni, aby sprawdzić, czy każdy ciąg w kolumnie zespołu zawiera podciąg „Dobry” lub „Jest”:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_or_east <- apply(sapply(find_strings, grepl, df$team), 1 , any )
#view updated data frame
df
team points good_or_east
1 Good East Team 93 TRUE
2 Good West Team 99 TRUE
3 Great East Team 105 TRUE
4 Great West Team 110 FALSE
5 Bad East Team 85 TRUE
6 Bad West Team 88 FALSE
Nowa kolumna good_or_east zwraca następujące wartości:
- PRAWDA , jeśli zespół zawiera „Dobry” lub „Jest”
- FAŁSZ , jeśli w drużynie nie ma ani „Dobrego”, ani „Wschodniego”
Przykład 2 : Sprawdź, czy ciąg zawiera wiele podciągów
Możemy użyć następującej składni, aby sprawdzić, czy każdy ciąg w kolumnie zespołu zawiera podciąg „Dobry” i „Jest”:
#define substrings to look for
find_strings <- c(' Good ', ' East ')
#check if each string in team column contains either substring
df$good_and_east <- apply(sapply(find_strings, grepl, df$team), 1 , all )
#view updated data frame
df
team points good_and_east
1 Good East Team 93 TRUE
2 Good West Team 99 FALSE
3 Great East Team 105 FALSE
4 Great West Team 110 FALSE
5 Bad East Team 85 FALSE
6 Bad West Team 88 FALSE
Nowa kolumna good_and_east zwraca następujące wartości:
- PRAWDA , jeśli zespół zawiera „Dobry” i „Jest”
- FAŁSZ , jeśli zespół nie zawiera „Dobry” i „Jest”
Należy pamiętać, że zwracana jest tylko jedna wartość TRUE , ponieważ istnieje tylko jedna nazwa zespołu zawierająca podciąg „Dobry” i „Wschód”.
Dodatkowe zasoby
Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w języku R:
Odp.: Jak sprawdzić, czy znak znajduje się w ciągu znaków
Odp.: Jak usunąć spacje z ciągów znaków
Odp.: Jak wyodrębnić ciąg znaków pomiędzy określonymi znakami