gpt4 book ai didi

r - 从 Excel 中将 float 作为字符串导入时出现问题。不正确地添加精度

转载 作者:行者123 更新时间:2023-12-04 22:33:34 26 4
gpt4 key购买 nike

使用 openxlsx read.xlsx 从多类列导入数据框。期望的结果是将所有值作为字符串导入,与它们在 Excel 中的表示完全相同。然而,一些小数被表示为非常长的 float 。

示例数据只是一个 Excel 文件,其中一列包含以下行:

abc123, 
556.1,
556.12,
556.123,
556.1234,
556.12345

require(openxlsx)
df <- read.xlsx('testnumbers.xlsx', )

使用上面的 R 代码读取包含这些字符串的 df 中的文件结果

values:
abc123,
556.1,
556.12,
556.12300000000005,
556.12339999999995,
556.12345000000005

生产中提供的 Excel 文件的列格式为“常规”。如果我将列的格式设置为文本,则不会发生任何变化,除非我明确双击 Excel 中的每个单元格并按回车键。在这种情况下,数字会正确显示为字符串。不幸的是,单击每个单元格在生产环境中不是一个选项。任何解决方案、Excel、R 或其他方式都值得赞赏。

*编辑:我已经通读了这个问题,相信我理解正在发生的事情背后的数学原理。在这一点上,我想我正在寻找一种解决方法。如何在不更改表示形式的情况下将 float 作为文本从 Excel 获取到 R 数据框?

Why Are Floating Point Numbers Inaccurate?

最佳答案

我能够使用 python 中的 pandas 将正确的格式放入数据框中。

import pandas as pd
test = pd.read_excel('testnumbers.xlsx', dtype = str)

这足以作为解决方法,但我希望看到一个内置于 R 中的解决方案。

关于r - 从 Excel 中将 float 作为字符串导入时出现问题。不正确地添加精度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51025969/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com