我希望有一个关于as.numeric()的简单问题。我有一堆数据,数字写成字符。我希望它们是数字,但是as.numeric()会带走小数点。例如:
y <- as.character("0.912345678")
as.numeric(y)
0.9123457
谢谢:)
> 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位数字足以显示完整数字的原因。
[此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