我在R编程中有这个向量/数组,我想找到“ WIND”(大写或小写)并将整个文本替换为“ WIND”
> b
[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"
例如“ TSTM WIND”将是“ WIND”。“ WINDTER STORM”和“ HURRICANE OPAL / HIGH WINDS”等也是如此
我已经尝试过了但是没有喜悦
> 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
由于您要用相同的字符串替换所有匹配项,因此可以使用 [<-
b[grepl("WIND", b)] <- "WIND"
您也可以使用 sub
sub(".*(WIND).*", "\\1", b)
两者都导致
[1] "TORNADO" "WIND" "HAIL"
[4] "FREEZING RAIN" "SNOW" "ICE STORM/FLASH FLOOD"
[7] "SNOW/ICE" "WIND" "WIND"
[10] "WIND"
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句