0

我有一个 CSV(我使用 data.table 中的 fread 读取),其中有一些相当大的数字,我将其转换为羽毛格式,然后另存为羽毛文件,但是当我读入这个新文件时,数字完全是不同的。这发生在我转换的 777 个不同的 CSV 文件上,因此它不是 CSV 特有的。我尝试制作一个可重现的示例,但发现如果我在 R 中生成数字没有问题。

包含来自 CSV 数据的代码:

options(digits = 22)
t<-tempfile()
i<-as.data.frame(data$total)
head(i)

            x
1 10661832289
2 10836572665
3 11011492485
4 11180245212
5 11331994931
6 11486446777

feather::write_feather(i,t)
feather::read_feather(t)

# A tibble: 36 × 1
                         x
                     <dbl>
1  5.2676450557158410e-314
2  5.3539782724388232e-314
3  5.4404001462775578e-314
4  5.5237750713302844e-314
5  5.5987493942542471e-314

可重现的代码:运行此代码不会导致相同的问题。因此,它必须是从 CSV 中读取的保留类。

options(digits = 22)
t<-tempfile()
i<-as.data.frame(runif(10,10000000000,13000000000))
head(i)
feather::write_feather(i,t)
feather::read_feather(t)

我的会话信息:

sessionInfo()
R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows >= 8 x64 (build 9200)

locale:
[1] LC_COLLATE=English_United States.1252  LC_CTYPE=English_United States.1252   
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C                          
[5] LC_TIME=English_United States.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
[1] bit64_0.9-5 bit_1.1-12 

loaded via a namespace (and not attached):
 [1] lazyeval_0.2.0    plyr_1.8.4        assertthat_0.1    hms_0.3          
 [5] tools_3.3.3       haven_0.2.1       tibble_1.2        Rcpp_0.12.9      
 [9] feather_0.3.1     data.table_1.10.4 xlsxjars_0.6.1    rJava_0.9-8      
[13] xlsx_0.5.7  
4

0 回答 0