Search code examples
rstr-replacestringr

str_replace_all Error: `replacement` must be a character vector


What is the simplest way to replace patterns in a mixed vector?

vec <- c(0, 2500, "A", "B", 2, 3, "M", "+", "\"\"")

library(stringr)

vec <- str_replace_all(vec, c("A" = 0, "B" = 9, "M" = 6, "+" = 0, "\"\"" = 0))

Error: `replacement` must be a character vector

Expecting this vector:

[1] "0" "2500" "0" "9" "2" "3" "6" "0" "0"


Solution

  • use quotationmarks in the replacements as str_replace_all expects a string as a replacement:

    vec <- str_replace_all(vec, c("A" = "0", "B" = "9", "M" = "6", "+" = "0", "\"\"" = "0"))