【发布时间】:2015-10-20 15:12:04
【问题描述】:
我们已经看到很多关于如何在将因子转换为数字时保存小数位的问题,例如this 和this。但我没有看到任何与字符数据而不是因子数据相同的东西。以下是我尝试但没有成功的方法:
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
答案/cmets后更新:
没有丢失小数位。但我不知道为什么它没有显示。使用options(digits = 15),我可以看到所有小数。
教训:您可以在决定提出此类问题之前运行options()。
【问题讨论】:
-
我不认为你会失去任何东西。您只会看到以不同小数位数表示的值。
-
@Minnow,R inferno(我喜欢)谈论数字的有限精度表示,但它并没有(尽可能多地)谈论内部结构和外部表示之间的区别......
标签: r