R正则表达式在rstudio中查找和替换代码

时间:2015-06-17 16:06:49

标签: regex r rstudio

我想对代码脚本进行一些更改。我需要改变某些数据帧的子集化方式。具体来说,我需要一种使用正则表达式来编辑R studio的代码的方法。

我需要转换遵循此格式的几个数据框,

 variablex_indicatory$n[i]

对此,

 variablex_indicatory$n[variablex_indicatory$n==i]

由于我有许多变量和指标组合(例如variable1_indicator2variable3_indicator1等)。我需要的是能够将$n[之后i]之后的内容替换为variablex_indicatory$n ==

所以我需要在正则表达式中指定,找到$n[并替换为$n[whatever is before $n goes here ==

我会保持i不受影响,因为它不需要改变。

如何做到这一点会影响我目前对正则表达式的了解(显然)我希望有人可以提供帮助,再次提前感谢,如果我不够清楚,请告诉我。

2 个答案:

答案 0 :(得分:5)

假设每一行看起来大致如下:variablex_indicatory$n[i],那么您可以将此正则表达式放在查找框中:(^.+)(\$n\[)(i\])并将此正则表达式放在替换框中:\1\2\1==\3并点击“替换”所有。”

如果你有更复杂的代码,那么你需要更好地定义第一个组(我的例子从行的开头选择到美元符号($))。以下是第一组的一个变体:(variab.+)。您实际使用的将取决于您的具体情况。

答案 1 :(得分:0)

试试这个:

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