Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
178 views
in Technique[技术] by (71.8m points)

as.numeric() removes decimal places in R, how to change?

I have what I hope is a simple question about as.numeric(). I have a bunch of data with numbers written as characters. I want them to be numeric, but as.numeric() takes away decimal spots. For example:

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

Thank you :)

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

R is basically following some basic configuration settings for printing the number of required digits. You can change this with the digits option as follows:

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

Small EDIT for clarity: digits corresponds to the number of digits to display in total, and not just the number of digits after the comma.

For example,

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

In your example above the leading zero before the comma is not counted, this is why 9 digits was enough to display the complete number.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

1.4m articles

1.4m replys

5 comments

56.9k users

...