grepl & grep
In hun eenvoudigste vorm kun je reguliere expressies gebruiken om te controleren of een patroon voorkomt in een tekenreeks of in een vector met tekenreeksen. Hiervoor kun je gebruiken:
grepl(), datTRUEteruggeeft wanneer een patroon wordt gevonden in de bijbehorende tekenreeks.grep(), dat een vector met indexen teruggeeft van de tekenreeksen die het patroon bevatten.
Beide functies hebben een pattern- en een x-argument nodig, waarbij pattern de reguliere expressie is waar je op wilt matchen, en x de tekenvector is waarin gezocht wordt naar matches.
In deze en de volgende oefeningen ga je een tekenvector met e-mailadressen bevragen en bewerken! De vector emails is al vooraf gedefinieerd, dus je kunt meteen met de instructies aan de slag!
Deze oefening maakt deel uit van de cursus
R voor gevorderden
Oefeninstructies
- Gebruik
grepl()om een logische vector te maken die aangeeft of deze e-mailadressen"edu"bevatten. Print het resultaat naar de output. - Doe hetzelfde met
grep(), maar sla de resulterende indexen dit keer op in een variabelehits. - Gebruik de variabele
hitsom uit de vectoremailsalleen de e-mails te selecteren die"edu"bevatten.
Interactieve oefening met praktijkervaring
Probeer deze oefening door deze voorbeeldcode aan te vullen.
# The emails vector has already been defined for you
emails <- c("[email protected]", "[email protected]", "[email protected]",
"invalid.edu", "[email protected]", "[email protected]")
# Use grepl() to match for "edu"
# Use grep() to match for "edu", save result to hits
# Subset emails using hits