我想对代码脚本进行一些更改。我需要改变某些数据帧的子集化方式。具体来说,我需要一种使用正则表达式来编辑R studio的代码的方法。
我需要转换遵循此格式的几个数据框,
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 :(得分: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='')