SPSS - 将三个日期字段的值传递到文件名中

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

我的数据集有三个日期字段(adate10):Period,Version和Created。对于所有情况,每个字段的值都相同。假设值是:

Period = 10/01/17
Version = 11/15/17
Created = 11/25/17

我想将所有三个日期传递给SAVE OUTFILE='C:\Users\Inventory ? ? ?...命令,因此文件名是:

C:\MyData\Inventory p20171001 v20171115 c20171125.sav

我如何将这三个日期字段的值传递给save命令?我认为Python是可行的方法,但无法弄清楚语法。我在下面的链接中看到了几个解决方案,但它们都只涉及一个日期字段;我有三个。 (甚至当我尝试一个约会时,我也无法让它们中的任何一个工作)。

http://spssx-discussion.1045642.n5.nabble.com/include-value-from-variable-in-filename-when-saving-td4326879.html

spss
2个回答
2
投票

在这里你用一点Python:

BEGIN PROGRAM.
import spss, spssdata

# names of date variables (case sensitive)
varlist = ['period', 'version', 'created'] 

# fetch dates from dataset and format them to YYYYMMDD
data = spssdata.Spssdata(indexes=(varlist), cvtDates=(varlist))
dates = [date.strftime("%Y%m%d") for date in data.fetchone()]
data.close()

# Create 'save command' command and submit it to spss
spss.Submit(r"""
SAVE OUTFILE = 'C:\MyData\Inventory p{0} v{1} c{2}.sav'.
""".format(*dates))
END PROGRAM. 

0
投票

您只需使用语法即可获得所需的结果:

TEMPORARY.
select if $casenum=1.
format Period Version Created (f11).
write out="C:\MyData\save with dates in name.sps"   
    /"save out='C:\MyData\Inventory p", Period, " v",  Version, " c", Created, ".sav' ".
exe.
insert file="C:\MyData\save with dates in name.sps".
© www.soinside.com 2019 - 2024. All rights reserved.