如何用R中的相同替换多个字符串

时间:2015-02-02 19:42:37

标签: r string replace gsub

我有一个字符串

vec = c('blue','red','flower','bee')

我想将不同的字符串转换为一行而不是单独的字符串 即我可以gsub蓝色和gsub红色使他们都拼写'颜色'。我怎么能在一行中做到这一点?

输出应该是: '颜色', '颜色', '花', '蜂'

2 个答案:

答案 0 :(得分:9)

sub("blue|red", "colour", vec)

使用“|”你想要分词之间的(修饰或)。 使用sub仅更改第一次出现,使用gsub更改同一字符串中的多个出现次数。见?gsub

答案 1 :(得分:3)

在这里你不需要指定要替换的颜色,它将替换R知道的任何颜色(由colors()返回)

> col <- paste0(colors(), collapse = "|")
> gsub(col, "colour", vec)
[1] "colour" "colour" "flower"  "bee" 

另外,正如评论中所建议的那样(显然只有在元素只是颜色时才有效,所以gsub方法似乎更适合你的目的):

> vec[vec %in% colors()] <- "coulour"
> vec
[1] "coulour" "coulour" "flower"  "bee"