2013-07-31 139 views
1

我已經轉換的文件的Stata到舊版本saveold如何將Stata文件導入SAS 9.0?

下不工作對我的SAS 9.0

proc import datafile="d:\hsb.dta" out=mydata dbms = dta replace; 
run; 
proc print data=mydata; 
run; 

ERROR: DBMS type DTA not valid for import.

回答

2

SAS在版本9.1.3之前未添加對導入Stata文件的支持(請參閱this tech support note)。您需要將您的SAS版本升級到9.1.3或更高版本(在發佈過程中,當前版本爲9.3,9.3版本爲9.4),或者按照Nick的建議以某種格式(如文本文件)將其從Stata中導出。

假設您的SAS版本已獲得有效許可,只需聯繫SAS站點代表即可輕鬆進行升級。有很少的理由使用9.0;由於9.0的幾個重要問題,它很快被9.1.3取代。

您還需要獲得授權的SAS/ACCESS到PC文件格式。這是Base SAS的可選許可證。您可以通過運行驗證許可證:

PROC SETINIT; RUN; 

如果你看到

SAS/ACCESS Interface to PC Files 

的條目,那麼你有它的許可。如果沒有,那麼你需要聯繫你的網站代表或考慮一個替代直接導入。

2

兩側這裏的人們需要更精確的細節。

在Stata中,saveold命令save是內存中的數據集,但是以便Stata的以前版本可以讀取它。有時候,但並非總是如此,早期版本的Stata也可以讀取它。因此,從http://www.stata.com/manuals13/dsave.pdf可以知道Stata 13中的saveold將生成一個數據集,Stata 12和Stata 11都可以讀取該數據集。如本例中一樣,兼容性可以早於多個版本,因爲StataCorp不會更改每次產生Stata的新版本時,數據集的存儲格式。因此,版本n中的saveold確保了版本n-1的可讀性,並且可能意味着版本n-2或更早版本的可讀性。

因此,從Stata的角度來看,您需要確切地說明您正在使用哪個版本的Stata。

問題仍然存在SAS人員SAS 9.0究竟能讀取什麼。一個猜測是,SAS 9.0可以讀取Stata .dta文件,而不是海報節省的版本。但是,答案可能只是在SAS中發佈錯誤的命令,我希望有人能解決這個問題。

一個廣泛的選擇仍然是從Stata中導出數據作爲某種文本文件。

2

確保消防方式出口任何種類的Stata數據文件的將是它通過以下命令在Stata保存爲csv文件:

outsheet using "directory/foo.csv", comma replace 

SAS應該沒有問題導入CSV文件。