如何将Stata文件导入SAS 9.0?

时间:2013-07-31 19:02:26

标签: import sas stata

我已将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.

3 个答案:

答案 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文件应该没有问题。