我有一個很多值的變量,其中一個值就像'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