2016-11-02 5 views
2

私はSPSSで完全一致比較を実行する方法があるのだろうかと思います。現在、以下を使用して一つの変数がsysmisある場合にシステム行方不明(null)を返します。SPSS統計情報の変数を比較するときの完全一致の実行

ID var1 var1_comparison var1_check 
1  3     3    1 
2  4     3    0 
3  -     2    - 
4  1     1    1 
5  -     -    - 

私が欲しいものです:

compute var1_comparison = * Some logic here. 
compute var1_check = var1 = var1_comparison. 

の結果は、この(null値を表すハイフン)のように見えますこれは:

ID var1 var1_comparison var1_check 
1  3     3    1 
2  4     3    0 
3  -     2    0 
4  1     1    1 
5  -     -    1 

これは単純なSPSS構文を使用して可能ですか?私はPython拡張を使用することにもオープンしていますが、私はそれに精通していません。

答えて

1

これはあなたの例を再作成することです:

data list list/ID var1 var1_comparison. 
begin data 
1, 3, 3    
2 , 4, 3    
3, , 2    
4, 1, 1    
5, , 
end data. 

は今、あなたは両方の値が欠落している状況に個別に対処し、その後、他のすべての状況での計算を完了する必要があります。

do if missing(var1) or missing(var1_comparison). 
compute var1_check=(missing(var1) and missing(var1_comparison)). 
else. 
compute var1_check = (var1 = var1_comparison). 
end if. 
+0

私は、あなたが 'var1' **または** var1_comparisonのいずれかが欠けていて、もう一つがそうでないので、不等式のためにゼロと同じであるという3番目の条件が必要だと思います。 –

+0

それは良い点です@Jignesh Sutar、ありがとう。私はそれを世話するために最初の条件を変更しました。 –

1

一時的なスクラッチ変数(先頭にハッシュ(#)が付いています)を使用して、少し異なるアプローチがあります:

recode var1 var1_comparison (sysmis=-99) (else=copy) into #v1 #v2. 
compute Check=(#v1 = #v2). 
+0

元のデータを変更せずにこれを行うのが良いでしょう。'#v1#v2に' recode var1 var1_comparison(MISSING = -999)(else = copy) compute var1_check =#v1 =#v2。 ' –

+0

合意しました!編集されました。 –

関連する問題