How to replace multiple strings with the same in R
Solution 1
sub("blue|red", "colour", vec)
use "|" (which means the logical OR
operator) between the words you want to substitute.
Use sub
to change only the first occurence and gsub
to change multiple occurences within the same string.
Type ?gsub
into R console for more information.
Solution 2
Here you do not need to specify the colors to be replaced, it will replace any color that R knows about (returned by colors()
)
> col <- paste0(colors(), collapse = "|")
> gsub(col, "colour", vec)
[1] "colour" "colour" "flower" "bee"
Also, as suggested in the comments (which will obviously only work if the element is the color only, so the gsub
method seems better suited to your purposes):
> vec[vec %in% colors()] <- "coulour"
> vec
[1] "coulour" "coulour" "flower" "bee"
Comments
-
shecode almost 2 years
I have a string
vec = c('blue','red','flower','bee')
I want to convert different strings into the same in one line instead of seperately i.e. i could gsub blue and gsub red to make them both spell 'colour'. How can I do this in one line?
output should be: 'colour','colour','flower','bee'