2014-10-28 113 views
2

現在,在我的Windows 7辦公機器上運行的項目現在在我的Mac OS X筆記本電腦上出現錯誤,並嘗試使用R Studio運行它。失敗的部分是Read.dta在Mac OS X上無法正常工作

library(foreign) 
basis <- read.dta("myfile.dta") 
Error in factor(rval[[v]], levels = tt[[ll[v]]], labels = names(tt[[ll[v]]])) : 
    invalid 'labels'; length 4 should be 1 or 3 

RRstudio上的最新版本,我已經跑了update.packages()。因爲我是R本身的初學者,所以我完全無能爲力。

難道這不知何故與OS X編碼有關? stata文件中包含德語「變音符號」(即非ISO字符)。

+0

什麼版本的STATA文件保存爲? – kolonel 2014-10-28 19:30:11

+1

您的代碼是否包含read.dta函數所需的庫(外部)?正如@kolonel所指,[R不會讀Stata版本11以外的Stata文件](http://cran.r-project.org/web/packages/foreign/index.html)。這也可能有助於檢查您是否正在運行最新版本的RStudio,在撰寫本文時爲0.98.1083。 – zhaoy 2014-10-28 19:33:47

+0

是的,包括圖書館。這不是我的.dta文件,所以我不知道它對應的是哪個版本(目前試圖找出如何),但它在Windows下工作。因此,我認爲這不是問題。 – FooBar 2014-10-28 19:58:39

回答

2

改爲使用包memisc。這應該是更靈活。從文檔(發現here),我們有:

進口商機制比包「洋」的read.spss 和read.dta更加靈活和可擴展的,因爲大多數的文件解析的 頭是在R完成。

因此回到問題。首先,加載以下:

library(lattice) 
library(MASS) 
library(memisc) 

,然後使用電話:

as.data.frame(as.data.set(Stata.file("filename.dta"))) 
+0

這工作。它有點煩人,我現在不得不使用額外的軟件包,但它肯定比沒有好。 – FooBar 2014-10-28 20:58:58

+0

@FooBar這其實更加健壯。我會在我的文章中添加更多細節。 – kolonel 2014-10-28 21:02:42

+0

@FooBar看到我更新的答案,以更好地解釋我的意思。 – kolonel 2014-10-28 21:08:37

相關問題