将dBase / Paradox数据读入R?

时间:2013-02-12 16:41:44

标签: r dbase paradox

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

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

我希望我可以使用foreign包来阅读它们,因为它在read.dbf()函数的文档中说明:

  

DBF是用于为'XBASE'系列编写的文件的扩展名   数据库语言,涵盖dBase,Clipper,FoxPro及其   Windows等效Visual dBase,Visual Objects和Visual FoxPro,   加上一些旧产品

不幸的是,它在DBFOpen C函数中失败,在第425行附近:

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:0)

该列表未明确提及Paradox 5.0,您使用read.dbf阅读它的努力失败了。它是文件是静态的,即不再改变,我只是创建一个脚本来导出它们,将它们读入R,然后使用save转储结果,这样你就可以使用{{{ 1}}。

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