write.csv 时科学记数法最后一位省略为零
Posted
技术标签:
【中文标题】write.csv 时科学记数法最后一位省略为零【英文标题】:Scientific notation last digits omitted as zeros when write.csv 【发布时间】:2016-09-01 21:14:05 【问题描述】:我有很多很长的数字,r 将它们读取为科学计数法。但是当我write.csv
时,科学记数法变成了一个不正确的数字,后面跟着一堆零。比如3.894e+13
会在write.csv.
之后变成38944400000000
我在零的地方有确切的数字。 导出数据文件时如何保持准确的数字?
[更新]: (1) 问题是因为当我在 excel 中另存为 csv 时,它会丢失长数字的数字。这是一个 excel 错误,我使用 excel 2016。
(2) 出现上述问题时,我累了设置options(scipen=999)
。当我汇总数据时,此文件中始终省略汇总统计信息。我尝试了其他文件,它 (summary
) 可以正常工作而不会丢失精度。当我打印数字时,它是正确的,我设置选项后只省略了汇总统计。
【问题讨论】:
【参考方案1】:在写入 csv 文件之前将scipen
选项设置为足够大的数字是使其工作的一种方法:
df = data.frame(x = 1232939143546532)
options(scipen = 30)
write.csv(df, "test.cv")
这给出了以下内容:
"","x"
"1",1232939143546532
【讨论】:
也可以使用write.csv(format(df, digits = 22), quote = FALSE)
,而不必更改任何选项。以上是关于write.csv 时科学记数法最后一位省略为零的主要内容,如果未能解决你的问题,请参考以下文章