2017-10-14 40 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

順便說一句,這是類似的解決方案之一在您發佈的鏈接中 - 但它可以輕鬆地使用任意數量的日期(或來自數據本身的其他值) –

相關問題