在字符串中查找文本并用另一个字符串替换整个字符串+;R

在字符串中查找文本并用另一个字符串替换整个字符串+;R,r,R,我在R编程中有一个向量/数组,我想找到“WIND”(大写或小写),并用“WIND”替换整个文本 例如,“TSTM风”就是“风”。“暴风雪”和“蛋白石飓风/大风”也是如此……等等 我尝试过这个,但没有乐趣 > gsub("*WIND*","WIND",b,ignore.case=T) [1] "TORNADO" "TSTM WIND" "HAIL" [4] "FREEZING R

我在R编程中有一个向量/数组,我想找到“WIND”(大写或小写),并用“WIND”替换整个文本

例如,“TSTM风”就是“风”。“暴风雪”和“蛋白石飓风/大风”也是如此……等等

我尝试过这个,但没有乐趣

> gsub("*WIND*","WIND",b,ignore.case=T)
 [1] "TORNADO"                   "TSTM WIND"                 "HAIL"                     
 [4] "FREEZING RAIN"             "SNOW"                      "ICE STORM/FLASH FLOOD"    
 [7] "SNOW/ICE"                  "WINDTER STORM"             "HURRICANE OPAL/HIGH WINDS"
[10] "THUNDERSTORM WINDS"       
>
这显示了那些符合我的标准的

> grepl("*WIND*",b,ignore.case=T)
 [1] FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE

最简单的解决方案是
stringr

require(stringr)
str_replace_all(b, ignore.case(".*WIND.*"), "WIND")

这应该符合你的要求。像这样的例子就是stringr产生的原因。

既然你要用同一个字符串替换所有匹配项,你可以使用
[thaks and perfect,在
中,
点是什么?
“*WIND.*”
在regex中基本上说,“匹配所有东西”因此,这将匹配所有的内容,包括
,然后是后面的内容。我相信
本身意味着“任何字符”。这是一个很好的参考,我如何插入一个变量来代替“风”,比如循环数组/是否类似于
列表来回答我自己使用的问题
模式
require(stringr)
str_replace_all(b, ignore.case(".*WIND.*"), "WIND")
b[grepl("WIND", b)] <- "WIND"
sub(".*(WIND).*", "\\1", b)
 [1] "TORNADO"               "WIND"                  "HAIL"                 
 [4] "FREEZING RAIN"         "SNOW"                  "ICE STORM/FLASH FLOOD"
 [7] "SNOW/ICE"              "WIND"                  "WIND"                 
[10] "WIND"