使用memisc将stata .dta文件导入R

ptj*_*tty 6 memory r stata dta

我有一个700mb .dta Stata文件,有2800万个观测值和14个列变量

当我尝试使用外部的 read.dta()函数导入R 时,我的8GB机器上的RAM耗尽(页面输出非常快速地射入GB).

staph <- read.dta("Staph_1999_2010.dta")
Run Code Online (Sandbox Code Playgroud)

我在周围寻找,听起来更有效的替代方案是使用memisc包中的Stata.file()函数.

我打电话的时候:

staph <- Stata.file("Staph_1999_2010.dta")
Run Code Online (Sandbox Code Playgroud)

我得到一个段错误:

*** caught segfault ***
address 0xd5d2b920, cause 'memory not mapped'

Traceback:
 1: .Call("dta_read_labels", bf, lbllen, padding)
 2: dta.read.labels(bf, len.lbl, 3)
 3: get.dictionary.dta(dta)
 4: Stata.file("Staph_1999_2010.dta")
Run Code Online (Sandbox Code Playgroud)

我发现Stata.file()的文档很难理解.

(1)我使用Stata.file()得当吗?

(2)Stata.file()返回像read.dta()这样的数据帧吗?

(3)如果我Stata.file()正确使用,我该如何解决我得到的错误?