我有一个10 GB .dta Stata文件,我试图将其读入64位R 3.3.1。我正在使用大约130 GB RAM(4 TB HD)的虚拟机,.dta文件大约有300万行,大约有400到800个变量。
我知道data.table()是读取.txt和.csv文件的最快方法,但有人建议将大型.dta文件读入R吗?将文件作为.dta文件读入Stata需要大约20-30秒,尽管我需要在打开文件之前设置我的工作内存最大值(我将最大值设置为100 GB)。
我没有尝试在Stata中导入.csv,但我希望避免使用Stata触及该文件。通过Using memisc to import stata .dta file into R找到了解决方案,但这假设RAM很少。在我的情况下,我应该有足够的RAM来处理文件。
答案 0 :(得分:2)
我推荐haven
R package。与foreign
不同,它可以读取最新的Stata格式:
library(haven)
data <- read_dta('myfile.dta')
不确定与其他选项相比有多快,但您在R中读取Stata文件的选择相当有限。我的理解是haven
包装了一个C库,所以它可能是你最快的选择。
答案 1 :(得分:2)
在R中加载大型Stata数据集的最快方法是使用readstata13
包。我在大型数据集in this post上比较了foreign
,readstata13
和haven
个包的效果,结果反复显示readstata13
是最快的可用包用于读取R中的Stata数据集。