如何在文件名中保存带有当前系统日期的 SPSS 输出文件导出,格式为 yyyy-mm-dd

问题描述 投票:0回答:1

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.
* [email protected] 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'.
sorting date datetime filenames spss
1个回答
0
投票

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”,可以在您的文件名中使用。 注意 - 在原始代码中,您在变量名称的开头使用
#
- 这很好避免使您的工作数据混乱,但由于所有这些过程都发生在一个独立的临时数据集上,所以没有它们你会做得更好 - 调试是当您真正看到您的数据时会更容易 :)

© www.soinside.com 2019 - 2024. All rights reserved.