2016-09-29 3 views
3

不要な変数を削除するSPSSファイルがありますが、存在しない場合は別の場所に変数を持ち込みます。だから、私はいくつかのPythonコードを探しています。つまり、リストからすべての変数を保持し、いずれかが最初のファイルに存在しない場合は、2番目のファイルからそれらをマージします。 (Pythonのルーキー..)元のファイルにPythonを使用していない場合、SPSS変数をマージします。

ありがとう!

答えて

2

ここであなたが始めるためにapporachです:

DATA LIST FREE/ID A B C D E. 
BEGIN DATA 
1 11 12 13 14 15 
END DATA. 
DATASET NAME DS1. 

DATA LIST FREE/ID D E F G H. 
BEGIN DATA 
1 24 25 26 27 28 
END DATA. 
DATASET NAME DS2. 

BEGIN PROGRAM PYTHON. 
import spssaux, spss 
spss.Submit("dataset activate ds1.") 
ds1vars=[v.VariableName for v in spssaux.VariableDict()] 
spss.Submit("dataset activate ds2.") 
ds2vars=[v.VariableName for v in spssaux.VariableDict()] 

extravars = [v for v in ds2vars if v not in ds1vars] 

spss.Submit(""" 

DATASET ACTIVATE DS2. 
ADD FILES FILE=* /KEEP=ID %s. 
MATCH FILES FILE=DS1 /TABLE DS2 /BY ID. 
DATASET NAME DS3. 
DATASET ACTIVATE DS3. 

""" % (" ".join(extravars))) 

END PROGRAM PYTHON. 
0

あなただけmatch filesかかわらず、変数が欠落しているものの、tableに存在し、fileには存在しない変数だけが追加されますfile
名前は同じで幅は異なる両方のファイルにテキスト変数がある場合は問題があります。

関連する問題