如何用字符串本身替换包含字符串的变量?

时间:2015-06-29 12:29:17

标签: regex r

我有一个有很多价值的变量,其中一个值就像'Blamo BSM258 Clem on / o',我想用'BSM'代替它。 换句话说,我想用'BSM'替换包含'BSM'的变量的每个值。

我尝试过使用

  sub("(BSM)", "BSM", data$variable)

  data$variable[grep("(BSM)", data$variable)]<-"BSM"

但它不起作用。 (它使'NA'值)

2 个答案:

答案 0 :(得分:1)

为什么不简单:

gsub('BSM', '"BSM"', 'Blamo BSM258 Clem on/o')

答案 1 :(得分:0)

使用sub或gsub只替换字符串中的模式,因此您只需要替换&#34; BSM&#34;与&#34; BSM&#34;不是整个字符串。但第二个例子,grep应该有效。如果您正在寻找&#34; BSM&#34;在字符串中,你不需要在grep命令中使用括号,只需传递data$variable[grep("BSM", data$variable)]<-"BSM",一切都应该正确完成。

data的结构是什么?它是列表还是数据框?如果是列表,则$可能无法正确编制索引,这可能会导致NA值。