2013-07-31 109 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文件。