as.numeric()删除R中的小数位,如何更改?

CHN*_*CHN 11 r

我希望有一个关于as.numeric()的简单问题.我有一堆数据,数字写成字符.我希望它们是数字,但as.numeric()会删除小数点.例如:

y <- as.character("0.912345678")
as.numeric(y)
0.9123457
Run Code Online (Sandbox Code Playgroud)

谢谢 :)

Jel*_*eir 14

R基本上遵循一些基本配置设置来打印所需数字的数量.您可以使用以下digits选项更改此设置:

> options(digits=9)
> y <- as.character("0.912345678")
> as.numeric(y)
[1] 0.912345678
Run Code Online (Sandbox Code Playgroud)

清晰度小编辑: digits对应于总计显示的位数,而不仅仅是逗号后的位数.

例如,

> options(digits=9)
> y <- as.character("10.123456789")
> as.numeric(y)
[1] 10.1234568
Run Code Online (Sandbox Code Playgroud)

在上面的例子中,逗号之前的前导零点不计算,这就是9位数足以显示完整数字的原因.


Ric*_*son 7

结果是R只显示固定数字.

这个R-help帖子解释了发生了什么.引用Peter Dalgaard的话说,"物体和物体的显示之间存在差异."

用你的例子,

y2 = as.numeric(y)
print(y2)
# [1] 0.9123457 
Run Code Online (Sandbox Code Playgroud)

但减去0.9看

y2 - 0.9
# [1] 0.01234568
Run Code Online (Sandbox Code Playgroud)

更新基于由@Khashaa注释要更改显示的使用

options(digits = 9)
y2
# [1] 0.912345678
Run Code Online (Sandbox Code Playgroud)