根据部分匹配替换整个字符串

时间:2014-03-15 02:38:46

标签: regex r

R的新手。如果存在部分匹配,则寻找替换整个字符串。

d = c("SDS0G2 Blue", "Blue SSC2CWA3", "Blue SA2M1GC", "SA5 Blue CSQ5")

gsub("Blue", "Red", d, ignore.case = FALSE, fixed = FALSE)

输出:" SDS0G2红色" "红色SSC2CWA3" "红色SA2M1GC" " SA5 Red CSQ5"

所需输出:“红色”“红色”“红色”“红色”

真正感谢您解决此问题的任何帮助。

2 个答案:

答案 0 :(得分:7)

我建议使用grepl查找索引并将这些索引替换为" Red":

d = c("SDS0G2 Blue", "Blue SSC2CWA3", "Blue SA2M1GC", "SA5 Blue CSQ5", "ABCDE")
d[grepl("Blue", d, ignore.case=FALSE)] <- "Red"
d
# [1] "Red"   "Red"   "Red"   "Red"   "ABCDE"

答案 1 :(得分:0)

如果您确实希望保留变量作为因子并立即替换多个部分匹配项,则以下功能将起作用(来自另一个问题的示例)。

sumif(Table1[[ type]]=1, IF(Table1[[#All],[Date]]=K3, AND(Table1[[#All],[Time]]=K4, IF(Table1[[#All],[Sum Time (sec)]]=<300))))

reprex package(v0.3.0)于2020-04-18创建