我有.dbf格式的数据集,需要将其导入R. 我以前没有使用过这样的扩展,所以不知道如何将带有多个表的dbf文件导出为不同的格式。
简单的read.dbf已经运行了几个小时但仍然没有结果。 试图寻找加速R性能,但不确定是否是这种情况,认为问题是在读取大型dbf文件本身(权重~1.5Gb)后,即命令本身必须根本没有效率。但是,我不知道如何处理这种数据集格式的任何其他选项。 是否还有其他选项可以导入dbf文件?
P.S。 (NOT R ISSUE)dbf文件的源使用visual foxpro,但无法将其导出为其他格式。我已经安装了foxpro,但鉴于我以前从未使用它,我不知道如何以正确的方式导出它。尝试简单的“导出到type = XLS”命令,但这里出现了编码问题,因为大多数变量都是俄语西里尔语,并且不能被excel解密。另外,dbf文件包含多个应该合并在一个大表中的表,但我不知道如何将这些表分别导出到xls,同样我不知道如何将多个表作为一个整体导出到xls中或者csv,或者如何将它们合并在一起,因为我对dbf文件主题完全不熟悉(虽然已经查看了基本描述)
任何帮助都将受到高度赞赏。不确定我是否可以提供样本数据集,因为当我在foxpro中查看dbf时有很多列,而且这些列必须与来自同一dbf文件的其他表合并,并且不知道如何做到这一点。 (对不起这个烂摊子)
答案 0 :(得分:3)
根据VFP帮助文件,您可以通过命令窗口使用COPY TO命令以多种格式从Visual FoxPro导出。
例如:
use mydbf in 0
select mydbf
copy to myfile.xls type xl5
copy to myfile.csv type delimited
如果您遇到与语言相关的问题,可以在其末尾添加“as codepage”子句。例如:
copy to myfile.csv type delimited as codepage 1251
如果您不熟悉VFP,我会尝试将这些原始数据输出到您熟悉的平台,然后再尝试合并等。
要在循环中导出它们,您可以在.PRG文件中使用以下内容(修改顶部的两个路径变量以反映您自己的设置)。
Close All
Clear All
Clear
lcDBFDir = "c:\temp\" && -- Where the DBF files are.
lcOutDir = "c:\temp\export\" && -- Where you want your exported files to go.
lcDBFDir = Addbs(lcDBFDir) && -- In case you forgot the backslash.
lcOutDir = Addbs(lcOutDir)
* -- Get the filenames into an array.
lnFiles = ADir(laFiles, Addbs(lcDBFDir) + "*.DBF")
* -- Process them.
For x = 1 to lnFiles
lcThisDBF = lcDBFDir + laFiles[x, 1]
Use (lcThisDBF) In 0 Alias currentfile
Select currentfile
Copy To (lcOutDir + Juststem(lcThisDBF) + ".csv") type csv
Use in Select("Currentfile") && -- Close it.
EndFor
Close All
...并从命令窗口运行它 - 执行myprg.prg或其他任何操作。