我希望有一个关于as.numeric()的简单问题。我有一堆数据,数字写成字符。我希望它们是数字,但as.numeric()会删除小数点。例如:
y <- as.character("0.912345678")
as.numeric(y)
0.9123457
谢谢:)
答案 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