为什么nchar为R中的大数值变量返回错误的值?

时间:2018-01-12 15:07:00

标签: r string scientific-notation

根据我的理解,输入应转换为字符而不指定

" x = ...字符向量,或强制转换为字符向量的向量"

nchar(2015122514204000000)
# 18 
nchar("2015122514204000000")
# 19 

# Replacing the end zeroes with 111111
nchar(2015122514204111111)
# 19

2 个答案:

答案 0 :(得分:6)

它正在执行以下操作:

as.character(2015122514204000000)
"2.015122514204e+18"

nchar("2.015122514204e+18")

是18岁。

尝试例如options(scipen=999)以防止科学记数法,nchar(2015122514204000000)将返回19。希望这有帮助!

答案 1 :(得分:4)

我相信这就是发生的事情:

> as.character(2015122514204000000)
[1] "2.015122514204e+18"
> nchar(as.character(2015122514204000000))
[1] 18