【问题标题】:How to turn off scientific notation when writing to a CSV-file?写入 CSV 文件时如何关闭科学记数法?
【发布时间】:2019-01-24 05:11:12
【问题描述】:

我在 R 中导入了 Excel 文件。因此,我测试了不同的包(readxlopenxlsx)。 这些电子表格中的某些字段带有大的十进制数字。这些是作为科学数字导入的。

我使用options(scipen=999) 切换了科学记数法。 这适用于将数字作为非科学数字打印到控制台。数据位于 data.table 结构中。

但是,当我将数字导出到 CSV 时,我会在 CSV 文件中恢复科学记数法。我测试了不同的方法(write.csvwrite.csv2fwrite 等)。我遇到了所有方法的问题。

有没有办法关闭 CSV 输出中的科学记数法?

我无法 100% 重现该问题,但我已尝试创建 reproducible example

【问题讨论】:

  • 你能给个reproducible example吗?
  • 这是您的 CSV 阅读器(Excel?),它开启了科学记数法。如果您使用文本编辑器打开 CSV,您将无法获得科学记数法。
  • 我在用notepad++打开CSV时也遇到了问题
  • 我试着举个例子。我无法 100% 重现它,但我已经制定了 2 个选项。导入数据时,我显然也遇到了小数问题。

标签: r csv data.table export scientific-notation


【解决方案1】:

您可以在保存之前将sprintf(fmt = "%f", ...) 应用于您的数据。

sprintf(fmt = "%.2f", 1e3) == "1000.00"

【讨论】:

  • 真的没有其他方法可以解决这个问题吗?
  • 您可以尝试使用as.integer 将列转换为integer。似乎write.csv 将使用带有numeric 类列的科学记数法,但不是整数。
猜你喜欢
  • 2014-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多