在R中更准确地读取csv

时间:2016-05-17 02:58:41

标签: r csv

我正在尝试读取数字为5或6位小数的.csv文件。但R似乎会自动截断我的号码。

我的原始数据相似

4445.32433,41.9194,15625.68189,...
16.27793374,3838.070873,189.9342746

这就是我得到的

$ V3   : num  4445.32 16.28 1049.5 36.91 9.52 ...
$ V4   : num  41.9 3838.1 100.6 43.8 11.3 ...

然而,对于部分专栏,我得到了这个

$ V39  : num  1.02e-05 2.67e-01 1.16e-03 7.12e-04 2.14e-04 ...
$ V40  : num  0.221222 0.072993 0.004526 0.002724 0.000817 ...

R截断我的数据的逻辑是什么?

我如何控制它?在阅读时使用colClasses=c("double")似乎毫无效果。

感谢。

3 个答案:

答案 0 :(得分:3)

R根本不会截断您的数据。您的数据已成功读取而不会丢失任何精度。您在屏幕上看到的四舍五入只是print的结果。试试df$v3[1],你会看到我的意思。

虽然您可以按options(digits)控制要打印的位数,但无需执行此操作。

答案 1 :(得分:1)

完整分辨率由R存储,您只是看到控制台上显示的舍入值。看看函数:options(digits=6)

有关详细信息,请参阅此问题:Formatting Decimal places in R

答案 2 :(得分:0)

我现在遇到了类似的问题。我将值从一个 Excel 文件复制粘贴到另一个。在 excel 中,这些值看起来不错,但是当您将其保存为 csv 文件时,这些值将仅保留其显示的精度点。我猜这是 excel 的一个错误/功能 - 它们从剪贴板中获取值,而不是从实际文件中获取。

我目前的解决方法是增加这个复制粘贴列的小数,直到它足以满足我的需要。