我有一个很多值的变量,其中一个值就像'Blamo BSM258 Clem on/o',我想用'BSM'替换它。 换句话说,我想用'BSM'替换包含'BSM'的变量的每个值。如何用字符串本身替换包含字符串的变量?
我使用
sub("(BSM)", "BSM", data$variable)
或
data$variable[grep("(BSM)", data$variable)]<-"BSM"
尝试,但它不工作。 (它使“NA”的值)
我有一个很多值的变量,其中一个值就像'Blamo BSM258 Clem on/o',我想用'BSM'替换它。 换句话说,我想用'BSM'替换包含'BSM'的变量的每个值。如何用字符串本身替换包含字符串的变量?
我使用
sub("(BSM)", "BSM", data$variable)
或
data$variable[grep("(BSM)", data$variable)]<-"BSM"
尝试,但它不工作。 (它使“NA”的值)
使用子或GSUB只替换字符串中的模式,所以你只是用“BSM”不是整个更换“BSM”串。但第二个例子,grep
应该工作。如果您在字符串中查找“BSM”,则不需要在grep命令中使用括号,只需传递data$variable[grep("BSM", data$variable)]<-"BSM"
,并且所有内容都应该正确完成。
data
是什么结构?它是一个列表还是数据框?如果它是一个列表,那么$
可能没有正确编制索引,这可能会导致NA值。
这是一个数据帧,但是这个变量是根据因子来读取的......我不知道如何防止它,下面是我的警告信息:'[< - 。factor'(' * tmp *',grep(“[[:alpha:]] [[:space:]] BSM [[:digit:]]”,:无效因子级,生成NA。 – SparkUser
你的第二次尝试对我来说似乎也适用于即使使用NAs。你能提供一些失败的示例数据吗? – Molx