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

时间:2015-04-26 16:21:32

标签: r

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

y <- as.character("0.912345678")
as.numeric(y)
0.9123457

谢谢:)

2 个答案:

答案 0 :(得分:12)

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

> options(digits=9)
> y <- as.character("0.912345678")
> as.numeric(y)
[1] 0.912345678
为了清晰起见,

编辑digits对应于显示总计的位数,而不仅仅是逗号后面的位数。

例如,

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

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

答案 1 :(得分:7)

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

这篇R-help帖子解释了发生了什么。引用Peter Dalgaard, “对象和对象的显示之间存在差异。”

举个例子,

y2 = as.numeric(y)
print(y2)
# [1] 0.9123457 

但减去0.9以查看

y2 - 0.9
# [1] 0.01234568

根据@Khashaa的评论更新 要更改显示器,请使用

options(digits = 9)
y2
# [1] 0.912345678