How to replace multiple strings with the same in R

11,797

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" 
Share:
11,797
shecode
Author by

shecode

Data Analyst R &amp; SQL

Updated on July 24, 2022

Comments

  • shecode
    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'