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

R regex to find and replace code in 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 不变,因为它不需要更改。

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

试试这个:

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

假设每一行大致如下:variablex_indicatory$n[i],那么您可以将此正则表达式放在查找框中:(^.+)($n\[)(i\]) 并将此正则表达式放在替换框中:== 然后单击"replace all."

如果您有更复杂的代码,那么您需要更好地定义第一组(我的示例选择从行首到美元符号 ($))。这是第一组的一个变体:(variab.+)。您实际使用什么将取决于您的情况的未指定细节。