【问题标题】:Validating data integrity after import from xls to R using RODBC使用 RODBC 从 xls 导入到 R 后验证数据完整性
【发布时间】:2011-09-01 03:34:43
【问题描述】:

我正在使用 RODBC 导入具有 ~10000 行和 ~250 列的 xls 文件,使用以下脚本:

channel <- odbcConnectExcel(xls.file="s:/demo.xls")
demo <- sqlFetch(channel,"Sheet_1")
odbcClose(channel)

在导入过程中,我打开和关闭了那个 xls 文件。

作为预防措施,我检查了 R 和 xls 文件本身的行数,只是为了确保导入没有损坏,是的,行数保持不变,所以我假设导入过程是好的。

当我开始对数据进行制表时出现问题,我意识到即使行号是相同的,有些行实际上已经损坏,我在里面有一个UID,并意识到在数据帧的后面部分, UID 混乱(例如,同一行被复制两次)。

我再次重新导入文件,不敢打开或关闭xls文件,这次一切顺利。

我学到了在 RODBC 读取 xls 文件时永远不要打开或关闭它的教训,但是我如何确保数据不会被弄乱,或者确保我确实导入了数据集而没有错误,导入后?

谢谢。

附:我正在考虑将数据帧导出到 csv,并将 xls 也导出到 csv,然后比较校验和,作为一种额外的措施,但是还有其他方法吗?

【问题讨论】:

    标签: r corrupt rodbc


    【解决方案1】:

    我使用gdata 包中的read.xls 函数(使用`install.packages(gdata)' 安装)。

    如果我是正确的,这允许您从未打开的 Excel 文件中读取。它是一些 Perl 模块的包装器,因此它可能取决于您是否安装了这些模块是否适合您。

    引用R manual for Data Export/Import

    Perl 用户贡献了一个模块 OLE::SpreadSheet::ParseExcel 和一个程序 xls2csv.pl 来将 Excel 95–2003 电子表格转换为 CSV 文件。包 gdata 在其 read.xls 函数中提供了一个基本的包装器。安装合适的 Perl 模块后,此功能还可以读取 Excel 2007 电子表格。

    通常,我发现将数据从 Excel 导入 R 的最安全方法是通过 csv 导出。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-10-27
      • 2017-09-03
      • 1970-01-01
      • 2019-10-28
      • 2021-07-15
      • 1970-01-01
      • 2017-11-16
      • 1970-01-01
      相关资源
      最近更新 更多