A: controleer of de string meerdere substrings bevat
U kunt de volgende methoden in R gebruiken om te controleren of een string meerdere substrings bevat:
Methode 1: Controleer of de string een van meerdere substrings bevat
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , any )
Deze specifieke syntaxis controleert of elke tekenreeks in de teamkolom een van de tekenreeksen bevat die zijn opgegeven in de tekenreeksvector genaamd find_strings .
Methode 2: Controleer of de string meerdere substrings bevat
df$contains_any <- apply(sapply(find_strings, grepl, df$team), 1 , all )
Deze specifieke syntaxis controleert of elke tekenreeks in de teamkolom alle tekenreeksen bevat die zijn opgegeven in de tekenreeksvector genaamd find_strings .
De volgende voorbeelden laten zien hoe u elke methode in de praktijk kunt gebruiken met het volgende dataframe in 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
Voorbeeld 1: Controleer of de string één of meerdere substrings bevat
We kunnen de volgende syntaxis gebruiken om te controleren of elke tekenreeks in de teamkolom de subtekenreeks ‚Goed‘ of ‚Is‘ bevat:
#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
De nieuwe kolom good_or_east retourneert de volgende waarden:
- WAAR als het team ‘Goed’ of ‘Is’ bevat
- FALSE als het team noch “Goed” noch “Oost” bevat
Voorbeeld 2 : Controleer of string meerdere substrings bevat
We kunnen de volgende syntaxis gebruiken om te controleren of elke string in de teamkolom de substring “Good” en “Is” bevat:
#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
De nieuwe kolom good_and_east retourneert de volgende waarden:
- WAAR als het team ‘Goed’ en ‘Is’ bevat
- FALSE als het team geen “Good” en “Is” bevat
Houd er rekening mee dat er slechts één TRUE- waarde wordt geretourneerd, omdat er slechts één teamnaam is die de subtekenreeks ‚Goed‘ en de subtekenreeks ‚Oost‘ bevat.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:
A: Hoe u kunt controleren of het teken in een string staat
A: Hoe u spaties uit tekenreeksen verwijdert
A: Hoe een string tussen specifieke karakters te extraheren