gsub 函数的结果会失真。知道为什么吗?

The result of the gsub function gets distorted. Any idea why?

当我尝试用数字零替换问号符号时,我得到了扭曲的输出。在我的代码下面给出。

x <- c(2,3,"m","M","b","?")
x1 <- gsub("m|M","6",x)
x1
#[1] "2" "3" "6" "6" "b" "?"
x1 <- gsub("?","0",x)
x1
#[1] "020" "030" "0m0" "0M0" "0b0" "0?0"

有人知道为什么会这样吗?任何帮助将不胜感激。

?是元字符,需要转义("\?")或者放在方括号内

gsub("[?]", "0", x1)

或使用fixed = TRUE

gsub("?", "0", x1, fixed = TRUE)