我有一根绳子
vec = c('blue','red','flower','bee')
我想在一行中将不同的字符串转换为相同的字符串,而不是单独的 即我可以 gsub blue 和 gsub red 使它们都拼写为“颜色”。我怎样才能在一行中完成此操作?
输出应该是: ‘颜色’、‘颜色’、‘花’、‘蜜蜂’
sub("blue|red", "colour", vec)
使用“|” (这意味着逻辑
OR
运算符)位于要替换的单词之间。
使用
sub
仅更改第一次出现的情况,使用 gsub
更改同一字符串中的多次出现。
在 R 控制台中输入
?gsub
以获取更多信息。
这里你不需要指定要替换的颜色,它将替换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"
library(mgsub)
mgsub(vec, c('blue', 'red'), 'colour', recycle = TRUE)
# [1] "colour" "colour" "flower" "bee"