我有一百个我继承的数据库文件,我目前正在阅读“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()
在这里是好还是坏?
答案 0 :(得分:2)
在rseek.org上搜索“paradox db”会产生gnumeric package,表示它可以读取Paradox文件。我没有任何方法来测试该功能,但它可能会起作用......
答案 1 :(得分:0)
该列表未明确提及Paradox 5.0,您使用read.dbf
阅读它的努力失败了。它是文件是静态的,即不再改变,我只是创建一个脚本来导出它们,将它们读入R,然后使用save
转储结果,这样你就可以使用{{{ 1}}。
如果数据不是太大,这将是一个快速的过程,并允许您轻松读取所有数据并提取您喜欢的任何子集。如果它很大,你可以投入一些时间将文件转储到更现代的数据库,例如load
(虽然这不是一个完整的数据库,但它很好而且轻巧)。如果不是绝对必要的话,我不会花太多时间从R直接访问这些古老的文件......