2017-10-14 42 views
1

我的数据集有三个日期字段(adate10):Period,Version和Created。所有情况下每个字段的值是相同的。假设值是:SPSS - 将三个日期字段的值传递给文件名

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

我想这三个日期传递到一个SAVE OUTFILE='C:\Users\Inventory ? ? ?...命令,这样的文件名是:

C:\MyData\Inventory p20171001 v20171115 c20171125.sav 

如何我可以通过这三个日期字段的值成保存命令?我认为Python是要走的路,但无法弄清楚语法。我在下面的链接中看到了几个解决方案,但它们都只涉及一个日期字段;我有三个。 (甚至当我用一个日期尝试时,我也无法让他们任何一个工作)。

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

回答

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". 
+0

顺便说一句,这是类似的解决方案之一在您发布的链接中 - 但它可以轻松地使用任意数量的日期(或来自数据本身的其他值) –

相关问题