我已經轉換的文件的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.
我已經轉換的文件的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.
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
的條目,那麼你有它的許可。如果沒有,那麼你需要聯繫你的網站代表或考慮一個替代直接導入。
兩側這裏的人們需要更精確的細節。
在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中導出數據作爲某種文本文件。
確保消防方式出口任何種類的Stata數據文件的將是它通過以下命令在Stata保存爲csv文件:
outsheet using "directory/foo.csv", comma replace
SAS應該沒有問題導入CSV文件。