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

问题描述 投票:0回答:3

我有一根绳子

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

我想在一行中将不同的字符串转换为相同的字符串,而不是单独的 即我可以 gsub blue 和 gsub red 使它们都拼写为“颜色”。我怎样才能在一行中完成此操作?

输出应该是: ‘颜色’、‘颜色’、‘花’、‘蜜蜂’

r string replace gsub
3个回答
17
投票
sub("blue|red", "colour", vec)

使用“|” (这意味着逻辑

OR
运算符)位于要替换的单词之间。

使用

sub
仅更改第一次出现的情况,使用
gsub
更改同一字符串中的多次出现。

在 R 控制台中输入

?gsub
以获取更多信息。


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" 

0
投票
library(mgsub)

mgsub(vec, c('blue', 'red'), 'colour', recycle = TRUE)
# [1] "colour" "colour" "flower" "bee"   
© www.soinside.com 2019 - 2024. All rights reserved.