用 write.csv 保存时,excel 更改了 r 数据帧的科学记数法

Posted

技术标签:

【中文标题】用 write.csv 保存时,excel 更改了 r 数据帧的科学记数法【英文标题】:excel changes scientific notation of r dataframe when saved with write.csv 【发布时间】:2021-12-18 04:06:47 【问题描述】:

我有一个数据框,其列的值如下:

 [1] 3.69e-01 4.84e-01 2.12e-01 3.50e-05 3.52e-27 4.53e-01 1.88e-06 1.16e-01 1.79e-10 1.58e-04 8.21e-02
[12] 2.15e-01 4.64e-01 6.23e-01 4.94e-05 4.08e-01 2.50e-02 8.94e-03 8.37e-06 6.29e-01 7.40e-09 7.24e-07
[23] 2.92e-13

当我将它们保存为 .csv 并在 excel 中打开时,它们变为:

当我使用https://www.tablesgenerator.com/latex_tables 从我的 .csv 文件中生成表格时,它也改变了数字的格式。

如何获取 .csv 与我的数据框中的内容完全一致?

【问题讨论】:

记事本也给出了不同的符号。我的目标是创建一个表,其值与我的数据框中的值完全相同。 【参考方案1】:

Excel 和 R(和记事本)处理显示数字的方式不同,这取决于两个程序中的大量设置。如果您确定要固定数字本身并始终以相同的方式显示,那么您最好的选择可能是将其转换为字符向量,因为字母(应该)总是呈现相同的。如果他们只是进入一张桌子,尤其如此。

现在,如果你只是用as.character() 之类的东西来转换它们,你会得到整个字符串(例如“0.00000000001231241”)所以你最好的实际上是formatC 函数。

formatC(column, format = "e", digits = 2)

它应该生成一个字符向量,其中包含您在列中的值,但所有值都以科学记数法格式化,正好是两位数。

【讨论】:

以上是关于用 write.csv 保存时,excel 更改了 r 数据帧的科学记数法的主要内容,如果未能解决你的问题,请参考以下文章

R studio错误:无法保存也无法写入csv

QT Excel 插入、删除或者更改数据之后保存保存失败

R语言的数据导入和导出

将数据从 R 导出到 Excel

R将dataframe数据保存为csv文件

write.csv 时科学记数法最后一位省略为零