1

我有大约一百个我继承的数据库文件,我目前正在使用“ Paradox dBase Access Reader ”阅读,并手动导出到管道分隔的文本文件。我很想用某种访问库来做到这一点,它可以让我将这些文件直接读入 R。

阅读器工具声明这些文件是“Paradox 5.0 for Windows”,并且它们具有.db扩展名。

我希望我可以使用外部包来阅读它们,因为它在文档中声明了该read.dbf()函数:

DBF 是用于为“XBASE”系列数据库语言编写的文件的扩展,涵盖 dBase、Clipper、FoxPro 及其 Windows 等效的 Visual dBase、Visual Objects 和 Visual FoxPro,以及一些较旧的产品'</p>

不幸的是,它在 C 函数中失败了DBFOpen,大约在第 425 行:

if( fread( pabyBuf, nHeadLen-32, 1, psDBF->fp ) != 1 )
{
  fclose( psDBF->fp );
  free( pabyBuf );
  free( psDBF );
  return NULL;
}

任何人都有其他解决方案,或者了解read.dbf()这里的匹配是好是坏?

4

2 回答 2

2

在 rseek.org 上搜索“paradox db”会生成gnumeric,它表示它可以读取 Paradox 文件。我没有任何方法可以测试该功能,但它可能会起作用......

于 2013-02-12T17:10:20.040 回答
0

该列表没有明确提到 Paradox 5.0,您使用它阅读它的努力read.dbf失败了。如果文件是静态的,即不再更改,我只需创建一个脚本将它们导出一次,将它们读入 R,然后使用save这种方式转储结果,您可以使用load.

如果数据不是太大,这将是一个快速的过程,并允许您轻松读取所有数据并提取您喜欢的任何子集。如果它很大,您可以花一些时间将文件转储到更现代的数据库中,例如sqlite(虽然这不是一个完整的数据库,但它很好而且轻量级)。如果不是绝对必要的话,我不会花太多时间从 R 直接访问这些古老的文件......

于 2013-02-12T16:50:13.873 回答