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

问题描述 投票:13回答:2

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

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

谢谢:)

r
2个回答
20
投票
> options(digits=9) > y <- as.character("0.912345678") > as.numeric(y) [1] 0.912345678

EDIT为清楚起见:digits对应于显示

总计的位数,而不仅仅是逗号后面的位数。

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

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


7
投票
显示固定位数。

[此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

© www.soinside.com 2019 - 2024. All rights reserved.