Raynald 的 SPSS 工具中的这段代码 成功地将系统日期添加到输出文件名中,但日期的格式如下:
filename_20-MAR-23.sav
我需要使用 yyyy-mm-dd 格式将当前日期添加到输出文件名中,如下所示:
文件名_2023-03-20.sav
我安装的语法参考文件 (SPSS 27) 包括日期格式 YMDHMS,它看起来更像我需要的,但我只想要日期,而不是时间:
我曾尝试将 YMDHMS 和其他日期格式语法替换为 Raynald 的代码,但到目前为止没有任何效果。有谁知道如何做到这一点?谢谢!
这里是参考代码:
* Objective: Save data file with the current date as part of the name.
* rlevesque@videotron.ca 2004/05/24.
* Define dummy data .
DATA LIST FREE /a.
BEGIN DATA
1 2 3
END DATA.
* Define a macro which will yield the current date.
STRING #cdate(A9).
COMPUTE #cdate=$DATE.
DO IF $casenum=1.
WRITE OUTFILE 'c:\\temp\\temp.sps' /"DEFINE !date()'"#cdate"'!ENDDEFINE.".
END IF.
EXECUTE.
* Run the macro.
INCLUDE 'c:\\temp\\temp.sps'.
SAVE OUTFILE='c:\\temp\\example1_' + !date + '.sav'.
Once you've computed
#cdate
you can change it into a date variable (right now it's a string),然后改变它的格式,然后回到一个字符串以优化它:
COMPUTE dtn=number(#cdate, DATE9).
FORMATS dtn (SDATE10).
string dtt(a11).
compute dtt=replace(concat("_", string(dtn, SDATE10)), "/","-").
现在,如果原始日期
cdate
是“21-MAR-23”,新日期 dtt
是“_2023-03-21”,可以在您的文件名中使用。
注意 - 在原始代码中,您在变量名称的开头使用 #
- 这很好避免使您的工作数据混乱,但由于所有这些过程都发生在一个独立的临时数据集上,所以没有它们你会做得更好 - 调试是当您真正看到您的数据时会更容易 :)