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 时科学记数法最后一位省略为零的主要内容,如果未能解决你的问题,请参考以下文章

使用 write.csv 时防止将行名写入文件

R write.csv 没有正确处理像é这样的字符

编写csv时避免拆分字符串列

如何有条件地删除 R 中 write.csv 中的双引号

数学建模好学吗?半年带出几十位省奖和十几位国奖

如何在 pyspark 中使用 df.write.csv 附加到 csv 文件?