我继承了大约一百个数据库文件,目前正在使用"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,加上一些旧产品的
不幸的是,它在DBFOpen
C函数中失败,大约在第425行:
if( fread( pabyBuf, nHeadLen-32, 1, psDBF->fp ) != 1 )
{
fclose( psDBF->fp );
free( pabyBuf );
free( psDBF );
return NULL;
}
有人有其他解决方案,或者了解read.dbf()
在这里是好匹配还是坏匹配吗?
在rseek.org上搜索"paradox db"会得到gnumeric包,该包表示它可以读取paradox文件。我没有任何方法来测试该功能,但它可能会工作。。。
该列表没有明确提到Paradox 5.0,您使用read.dbf
读取它的努力失败了。如果文件是静态的,即不再更改,我只需要创建一个脚本来导出它们一次,将它们读取到R中,并使用save
转储结果。这样,您就可以使用load
将数据读取到R。
如果数据不太大,这将是一个快速的过程,允许您轻松读取所有数据并提取任何您喜欢的子集。如果它很大,您可以投入一些时间将文件转储到更现代的数据库中,例如sqlite
(尽管这不是一个完整的数据库,但它很好,而且很轻)。如果不是绝对必要的话,我不会花太多时间从R直接访问这些古老的文件。。。