问题描述
只是想知道是否有人可以澄清以下内容。所以
> sample<-"10B"
> "10" * 10000
#Character * 数字,不起作用
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 - 替换 sub 和 gsub 中匹配的模式。如果可能的话,强制转换成角色。
result <- gsub("B",1000000,sample)
result
#[1] "101000000"
所以数字1000000
在替换时改为字符,而class(result)
是字符。