读取 libreoffice 生成的 xls 时,R 无法管理 "General" 格式的单元格

R can't manage "General" formatted cells when reading libreoffice generated xls

我为我的电子表格切换到 libreoffice,但我注意到在使用 gdata 包的 read.xls() 函数导入在 R 中用 libreoffice 修改的 xls 文件时出错。如果一列的格式设置为常规,那么一旦在 R 中,单元格就会显示常规而不是正确的值。

为了解决这个问题,我需要将每一列的格式设置为正确的格式(数字、文本等),我宁愿避免这种格式,因为一般更好地管理格式设置(例如,自动显示正确的有效数字位数) .

有更好的解决方案吗?

已解决:

根据 RockScience 的建议,我尝试了 openxlsx:read.xlsx() 并且效果很好。比 gdata:read.xls()!

更快更不容易出错

我还注意到 gdata::read.xls 不计算公式,而只是导入 excel 中显示的内容。因此,例如,如果公式 returns 1.0002 但在 excel 中显示限制为 2 位数字,gdata::read.xls 将仅导入 1.00

我研究了几种将 xls 数据导入 R 的方法:

如您所见,gnumeric::read.gnumeric.sheet 会计算公式,所以我建议您试试这个(但它需要访问 gnumeric 命令行,这在 Windows 上不容易使用)

因为最近还有一个新包http://cran.r-project.org/web/packages/openxlsx/index.html,看起来很有前途。