在 R 上使用 gsub 时强制转换?不知道为什么会这样

Forced conversion when using gsub on R? not sure why this is happening

只是想知道是否有人可以澄清以下内容。所以

    > sample<-"10B"
    > "10" * 10000  

#字符 * 数字,无效

    Error in "10" * 10000 : non-numeric argument to binary operator
    > "10" * "10000000"

#character * 字符,无效

    Error in "10" * "10000000" : non-numeric argument to binary operator
    > gsub("B",1000000,sample)

#由于某些原因,当用数字替换字符时,字符中出现数字*数字。

[1] "101e+06"

有人可以帮我理解为什么会这样吗?

gsub 将替换值强制转换为字符。来自 ?gsub :

replacement - a replacement for matched pattern in sub and gsub. Coerced to character if possible.

result <- gsub("B",1000000,sample)
result
#[1] "101000000"

因此数字 1000000 在替换时被更改为字符并且 class(result) 是字符。