grepl & grep
In de meest eenvoudige vorm kun je reguliere expressies gebruiken om te controleren of een patroon voorkomt in een tekenreeks of een vector met tekenreeksen. Hiervoor kun je het volgende gebruiken:
grepl(), datTRUEteruggeeft wanneer een patroon wordt gevonden in de overeenkomstige 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 waarop je wilt matchen en x de tekenvector is waarin gezocht moet worden naar matches.
In deze en de volgende oefeningen ga je een tekenvector met e-mailadressen opvragen en bewerken! De vector emails is al vooraf gedefinieerd, dus je kunt meteen aan de slag met de instructies!
Deze oefening maakt deel uit van de cursus
R voor gevorderden
Oefeninstructies
- Gebruik
grepl()om een vector met booleans te genereren die aangeeft of deze e-mailadressen"edu"bevatten. Print het resultaat naar de output. - Doe hetzelfde met
grep(), maar sla dit keer de resulterende indexen op in een variabelehits. - Gebruik de variabele
hitsom uit de vectoremailsalleen de e-mails te selecteren die"edu"bevatten.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in 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