Aan de slagBegin gratis

sub & gsub

Waar grep() en grepl() alleen werden gebruikt om te controleren of een reguliere expressie overeenkwam met een tekenvector, gaan sub() en gsub() een stap verder: je kunt een replacement-argument opgeven. Als in de tekenvector x de reguliere expressie pattern wordt gevonden, worden de overeenkomende element(en) vervangen door replacement. sub() vervangt alleen de eerste match, terwijl gsub() alle matches vervangt.

Stel dat de vector emails waar je mee werkte, een fragment is uit de e-maildatabase van DataCamp. Waarom zouden we de eigenaren van .edu-e-mailadressen geen nieuw e-mailadres op het domein datacamp.edu aanbieden? Dit kan een krachtig marketingstatement zijn: online onderwijs neemt het over van traditionele onderwijsinstellingen! Zet je e-mail om en word onderdeel van de nieuwe generatie!

Deze oefening maakt deel uit van de cursus

R voor gevorderden

Bekijk cursus

Oefeninstructies

Gebruik met de geavanceerde reguliere expressie "@.*\\.edu$" sub() om de match te vervangen door "@datacamp.edu". Omdat er per tekenreeks maar één match is, is gsub() hier niet nodig. Bekijk de uitvoer.

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 sub() to convert the email domains to datacamp.edu
Code bewerken en uitvoeren