将字符转换为数字而不丢失R中的小数

时间:2015-10-20 15:12:05

标签: r

我们已经看到很多关于如何在将因子转换为数字时保存小数位的问题,例如thisthis。但我没有看到任何与字符数据相同而不是因子数据的情况。以下是我没有成功的尝试:

f1 <- c("402313.01399128098", "402896.30908451998", "403165.63827027398", "403169.06116369402", "402891.96329268801", "402239.74412469601", 
        "402271.54950727499", "402313.01399128098")
as.numeric(as.character(f1)) # does not work

f2 <- as.factor(f1) 
as.numeric(as.character(f2)) # my decimals are GONE

f3 <- levels(f2) 
as.numeric(f3) # my decimals are gone again

我明白了

[1] 402239.7 402271.5 402313.0 402892.0 402896.3 403165.6 403169.1

答案/评论后更新:

没有丢失小数位数。但我不知道它为什么没有显示。使用options(digits = 15),我可以看到所有小数。

课程:您可以在决定提出此类问题之前运行options()

1 个答案:

答案 0 :(得分:3)

所有数字仍在那里。这只是默认的打印方法。

new.vec <- as.numeric(f1)
print(new.vec, digits=20)
#[1] 402313.01399128098 402896.30908451998 403165.63827027398
#[4] 403169.06116369402 402891.96329268801 402239.74412469601
#[7] 402271.54950727499 402313.01399128098

您也可以使用options(digits = n)更改默认值。

更多信息here