如何在R中用同一个字符串替换多个字符串

10

我有一个字符串

vec = c('blue','red','flower','bee')
我想把不同的字符串一起转换成相同的形式,而不是分别处理。 例如我可以用 gsub 将 "blue" 和 "red" 替换为 "colour"。如何在一行中做到这一点? 输出应该是: 'colour','colour','flower','bee'。
2个回答

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

在你想要替换的单词之间使用 "|" (表示逻辑 OR 运算符)。

使用 sub 仅更改第一次出现的单词,使用 gsub 更改同一字符串中的多个出现次数。

在 R 控制台中输入 ?gsub 以获取更多信息。


如果我的实际字符串由短语组成,这个代码还能正常工作吗? - shecode
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Rentrop

4

在这里,您不需要指定要替换的颜色,它将替换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" 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接