2017-10-14 1 views
1

に渡します。私のデータセットには、期間、バージョン、作成日という3つの日付フィールド(adate10)があります。各フィールドの値は、すべてのケースで同じです。SPSS - 3つの日付フィールドの値をファイル名

C:\MyData\Inventory p20171001 v20171115 c20171125.sav 

私はにこれら三つの日付フィールドの値を渡すことができます方法:ファイル名があるので、私はSAVE OUTFILE='C:\Users\Inventory ? ? ?...コマンドに3つのすべての日付を渡したい

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

:さんは値があるとしましょうsaveコマンド?私は、Pythonを使用する方法を想定していますが、構文を理解することはできません。以下のリンクでいくつかの解決策を見ていますが、それらはすべて1つの日付フィールドのみを含んでいます。私は3を持っています。 (そして私が1つの日付で試してみても、私は彼らのいずれかを働かせることができませんでした)。

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

をところで、これは解決策の一つに似ていますあなたが掲示したリンクの中で - しかしそれは日付の任意の数(またはデータ自体から他の値)で簡単に動作することができます –

関連する問題