我希望有一个关于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位数足以显示完整数字的原因.
结果是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)