用 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 数据帧的科学记数法的主要内容,如果未能解决你的问题,请参考以下文章