2015-06-17 2 views
2

Я хотел бы внести несколько изменений в скрипт кода. Мне нужно изменить способ подбора определенных фреймов данных. В частности, мне нужен способ использования regex для редактирования моего кода с помощью R studio.R regex для поиска и замены кода в rstudio

Мне нужно, чтобы преобразовать несколько dataframes, которые следуют за этим форматом,

variablex_indicatory$n[i] 

К этому

variablex_indicatory$n[variablex_indicatory$n==i] 

Поскольку у меня есть много комбинаций переменных и показателей (например, variable1_indicator2, variable3_indicator1 и т.д.) , что мне нужно, чтобы быть в состоянии заменить то, что после $n[ от i] до variablex_indicatory$n ==

Так что мне нужно указать в регулярном выражении, найти $n[ и заменить $n[whatever is before $n goes here ==

Я бы оставил i нетронутым, поскольку он не нужен быть изменениями.

Как это сделать, это ограничивает мое текущее знание регулярных выражений (очевидно). Я надеюсь, что кто-то может помочь, спасибо заранее и, пожалуйста, дайте мне знать, если я не был достаточно ясен.

+0

Встроенная функция поиска RStudio позволяет использовать регулярное выражение. почему бы не пойти по этому маршруту? – cole

+0

Я знаю, что поиск и замена Rstudio допускает в нем регулярное выражение, и именно это я задаю, как использовать регулярное выражение для внесения многих изменений в код только с одной строкой кода. – csmontt

ответ

0

Попробуйте это:

string<-"variablex_indicatory$n[i]" 
first<-sub('\\[.*]','',string) 
second<-sub('.*\\[(.*)\\]','\\1',string) 
paste(first,'[',first,'==',second,']',sep='') 
3

Предполагая, что каждая строка выглядит примерно так: variablex_indicatory$n[i], то вы можете поместить это регулярное выражение в поле Искать: (^.+)(\$n\[)(i\]) и это регулярное выражение в поле заменить: \1\2\1==\3 и нажмите «заменить все «.

Если у вас более сложный код, вам нужно сделать более четкую работу по определению первой группы (Мой пример выбирает из начала строки до знака доллара ($)). Вот один вариант для первой группы: (variab.+). То, что вы на самом деле используете, будет зависеть от неуточненных особенностей вашей ситуации.

Смежные вопросы