我在SAS内部有数据。
我想将数据文件存储为SPSS格式(* .sav)
我使用以下程序:
PROC export Data=SASdataToStoreInSPSS
FILE="Path\Filename_%sysfunc(today(),date9.).sav"
dbms=sav replace;
RUN;
这很有效。除非我在SPSS中打开文件,否则日期将被严格格式化。
例如:
156405 08:51:00
应该是
3-Jan-2011 08:51
我可以手动更改SPSS中的数据格式。因此值是正确的日期值,除非它们不会以可读格式自动格式化。
我尝试在保存到DATETIME20之前更改SAS中的格式。或DATETIME23.3。但这没有用。
我希望这可以在不打开SPSS并在那里运行语法的情况下工作。 SAS吐出的SPSS文件必须直接邮寄给其他数据用户。
答案 0 :(得分:0)
我认为这可能是SAS导出的错误,也可能是SPSS的一个问题,其中一些默认值已更改。发生的事情是SAS将其存储为SPSS日期 - 但宽度为16,这不足以保存完整的日期时间。我不认为您可以将DBDSOPTS
与DBMS = SPSS一起使用,因此我不知道在将文件导入SPSS之前有一个很好的解决方法。
但是,您可以使用SPSS Production工具自动执行此操作;我之前编写了一个导入脚本,并要求SAS使用批处理文件运行spssprod
。这是一个令人恼火的解决方法,但它可能是最简单的,除非SAS技术支持可以帮助你(当然尝试这一点 - 他们通常只需要几个小时的初始接触转换)。
答案 1 :(得分:0)
您需要的解决方法是将日期分为两列。一个有日期,一个有时间。
data SPSS2;
set SPSS;
date = put(datepart(DatumSPSS), date9.);
time = put(timepart(DatumSPSS), time8.);
run;
或者您可以告诉最终用户如何更改SPSS中日期的格式。
答案 2 :(得分:-1)
对于自动化方法,请尝试使用此.NET应用。您需要SPSS,但SAS不需要自动转换大量SAS文件。 Manual Process included code samples或Application Download