grepl и grep (2)
Символ ^ (крышка) и знак доллара $ позволяют искать совпадения в начале и в конце строки соответственно. Это приближает нас к более точному шаблону для отбора только ".edu" адресов из нашего списка. Но шаблон можно сделать ещё надёжнее, добавив следующие элементы:
@— потому что в любом корректном email-адресе должен быть символ «@»..*— соответствует любому символу (.) ноль или более раз (*). Точка и звёздочка являются метасимволами. С их помощью можно задать соответствие любым символам между «@» и частью ".edu" в адресе электронной почты.\\.edu$— соответствует части ".edu" в конце строки. Конструкция\\экранирует точку: она сообщает R, что точку нужно воспринимать как обычный символ, а не как метасимвол.
Это упражнение является частью курса
Intermediate R
Инструкции к упражнению
- Используйте
grepl()с расширенным регулярным выражением, чтобы получить логический вектор. Просто выведите результат на экран. - Сделайте то же самое с помощью
grep(), чтобы получить вектор индексов. Сохраните результат в переменнуюhits. - Используйте
emails[hits]для выборки элементов из вектораemails.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# 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