Найти положение подстроки в строке
- VistaSV30
- Активный участник
- Сообщения: 185
- Зарегистрирован: 02 июл 2018, 15:05
- Репутация: 7
- Откуда: Балашиха
Найти положение подстроки в строке
Добрый день!
Не могу найти функцию R, чтобы найти положение подстроки в строке.
Например, надо найти номер позиции буквы "b" в строке "abcd".
Все функции, что нашел делают всё что угодно:
- возвращают TRUE если искомая буква есть;
- возвращают количество букв b в строке;
и т.д.
Подскажите мне.
Спасибо!
Не могу найти функцию R, чтобы найти положение подстроки в строке.
Например, надо найти номер позиции буквы "b" в строке "abcd".
Все функции, что нашел делают всё что угодно:
- возвращают TRUE если искомая буква есть;
- возвращают количество букв b в строке;
и т.д.
Подскажите мне.
Спасибо!
Природа не просто эксцентричнее, чем мы полагаем - она эксцентричнее, чем мы способны предположить. John Haldane
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Найти положение подстроки в строке
Код: Выделить всё
string_example <- "abracadabra"
finding_symbol <- "b"
vector_with_each_symbol <- unlist(strsplit(string_example, ""))
positions_finding_symbol <- which(vector_with_each_symbol == finding_symbol)
str(positions_finding_symbol)
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Найти положение подстроки в строке
... также через функционал package'-а stringr:
Код: Выделить всё
string_example <- "abracadabra"
finding_substring <- "br"
stringr::str_locate_all(string_example, finding_substring)
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Найти положение подстроки в строке
... шпаргалка по работе со строками посредством stringr:
http://edrub.in/CheatSheets/cheatSheetStringr.pdf
http://edrub.in/CheatSheets/cheatSheetStringr.pdf
-
- Гуру
- Сообщения: 4056
- Зарегистрирован: 15 окт 2010, 08:33
- Репутация: 1054
- Ваше звание: программист
- Откуда: Казань
Re: Найти положение подстроки в строке
лучше освоить grep и его производные, позволяют творить чудеса, включая контекстные замены по патерну. В данном случае нужен gregexpr
Код: Выделить всё
unlist(gregexpr(pattern ='2',"the2quickbrownfoxeswere2tired"))
[1] 4 24
# а вот и чудеса: если третьей буквой от начала строки является c, то вставить перед ней буку X
str <- c("abcdccc","hijklccc","abcuioccc")
gsub("(^.{2})(?=c)(.*$)", "\\1X\\2", str, perl = T)
[1] "abXcdccc" "hijklccc" "abXcuioccc"
-
- Гуру
- Сообщения: 964
- Зарегистрирован: 22 май 2010, 20:20
- Репутация: 154
Re: Найти положение подстроки в строке
Да! Регулярные Выражения! Знание их и умения в них - великая сила!gamm писал(а): ↑24 июн 2020, 12:49лучше освоить grep и его производные, позволяют творить чудеса, включая контекстные замены по патерну. В данном случае нужен gregexpr
В свободном доступе есть неплохая брошюра о работе со строками в R, в которой уделено внимание и регулярным выражениям:
https://www.gastonsanchez.com/Handling_ ... s_in_R.pdf
И ещё:
https://clayford.github.io/dwir/dwr_07_ ... sions.html
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 9 гостей