我已将Stata文件转换为旧版本saveold
以下内容不适用于我的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.
答案 0 :(得分: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导出为某种文本文件。
答案 1 :(得分:2)
SAS在版本9.1.3之前未添加对导入Stata文件的支持(请参阅this tech support note)。您需要将您的SAS版本升级到9.1.3或更高版本(当前版本为9.3,在发布过程中为9.4),或者以某种格式从Stata导出,如Nick建议的文本文件。
假设您的SAS版本已获得有效许可,您只需与SAS站点代表联系即可轻松升级。使用9.0的理由很少;由于9.0的几个重要问题,它很快被9.1.3取代。
您还需要获得许可的SAS / ACCESS到PC文件格式。这是Base SAS的可选许可证。您可以通过运行以下来验证许可证:
PROC SETINIT; RUN;
如果您看到
的条目SAS/ACCESS Interface to PC Files
然后你获得许可。如果没有,那么您需要联系您的网站代表或考虑直接导入的替代方案。
答案 2 :(得分:2)
导出任何类型的Stata数据文件的可靠方法是通过Stata中的以下命令将其保存为csv文件:
outsheet using "directory/foo.csv", comma replace
SAS导入csv文件应该没有问题。