#r #extract #wildcard #subset #contains
#r #извлечь #подстановочный знак #подмножество #содержит
Вопрос:
Если у меня есть вектор:
Months = month.abb[1:12]
Я хочу извлечь все месяцы, которые начинаются с буквы J (в данном случае, январь, июнь и июль).
- Есть ли в Excel подстановочный знак, например *, в котором перечислены все элементы векторов, которые вы ищете для J *?
- Как мне извлечь элементы, начинающиеся либо на букву «М», либо на букву «А»? Ожидаемый результат будет в марте, мае, апреле, августе?
Ответ №1:
Попробуйте:
grep("^J", Months,value=TRUE)
#[1] "Jan" "Jun" "Jul"
grep("^A|^M", Months,value=TRUE)
#[1] "Mar" "Apr" "May" "Aug"
Комментарии:
1. Идеальный. Работал абсолютно безупречно. Приветствия, приятель!
Ответ №2:
Вы найдете glob2rx
функцию полезной для преобразования конструкций с подстановочными знаками в регулярные выражения:
> glob2rx("J*")
[1] "^J"
> grep(glob2rx("J*"), Months, value=TRUE)
[1] "Jan" "Jun" "Jul"
Комментарии:
1. Благодарим вас за то, что обратили наше внимание на glob2rx. Существуют ли другие инструменты в базе R, которые помогают людям правильно создавать регулярные выражения?
2. @user2583119 Других подобных функций, о которых я знаю, нет.
Ответ №3:
Если вы случайно stringr
загрузили, вы могли бы сделать:
library(stringr)
str_subset(Months, "^J")
[1] "Jan" "Jun" "Jul"