grepl & grep (2)
Je kunt het dakje ^ en het dollarteken $ gebruiken om respectievelijk het begin en het einde van een string te matchen. Dit brengt ons een stap dichter bij een correct patroon om alleen de ".edu"-e-mailadressen uit onze lijst te matchen. Maar er is meer dat je kunt toevoegen om het patroon robuuster te maken:
@, omdat een geldig e-mailadres een apenstaartje moet bevatten..*, dat elk teken (.) nul of meer keer (*) matcht. Zowel de punt als de asterisk zijn metatekens. Je kunt ze gebruiken om willekeurige tekens tussen het apenstaartje en het ".edu"-deel van een e-mailadres te matchen.\\.edu$, om het ".edu"-deel van het e-mailadres aan het einde van de string te matchen. Het\\-gedeelte escaped de punt: het vertelt R dat je de.als een letterlijk teken wilt gebruiken.
Deze oefening maakt deel uit van de cursus
R voor gevorderden
Oefeninstructies
- Gebruik
grepl()met de meer geavanceerde reguliere expressie om een logische vector terug te geven. Print het resultaat gewoon. - Doe iets vergelijkbaars met
grep()om een vector met indexen te maken. Sla het resultaat op in de variabelehits. - Gebruik opnieuw
emails[hits]om de vectoremailste filteren.
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 addresses more robustly
# Use grep() to match for .edu addresses more robustly, save result to hits
# Subset emails using hits