5
我有一個700MB .dta塔塔2800萬周的觀察和14個變量使用memisc導入STATA .dta文件爲R
文件時,我嘗試使用我跑foreign's read.dta()函數來導入成R在我的8GB機器上沒有內存(頁面輸出非常快速地輸入GB)。
staph <- read.dta("Staph_1999_2010.dta")
我找遍周圍和它聽起來像的更有效的替代方案將是使用Stata.file()函數從memisc package。
當我打電話:
staph <- Stata.file("Staph_1999_2010.dta")
我得到一個segfault:
*** 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")
我找到Stata.file的文檔()難以跟上。
(1)我正在使用Stata.file()
嗎?
(2)Stata.file()
是否返回像read.dta()這樣的數據框呢? (3)如果我正確使用Stata.file()
,我該如何解決我收到的錯誤?
購買更多的內存。通常的經驗法則是,你需要3倍的內存作爲最大的對象,所以28 * 14 * 10 * 3 = 11760,所以你應該有16GB的生產炒鍋的大小的對象(考慮到系統的需要內存,可能會佔用幾個演出 –
謝謝,我會考慮這些選項,但想弄清楚如何使用Stata.file() – ptjetty
我也segfault當我使用一個100MB的dta文件 – ptjetty