2016-12-15 81 views
1

我想比較,如果一個字段的整數列表中的任意值(例如:如果MCC = 3001 || 3002 || 30004)。在SPSS建模。但可能的價值清單非常長。任何人都可以告訴我如何通過一個列表來比較單個值而不使用'Or'/'||'。比較多個項目

+0

你可能會更好地問這[stats.se]。 –

回答

1

這是你在找什麼:如果MCC包含任何在它之後列出的價值觀

If any(MCC, 3001, 3002, value3, value4, value5 ....) 

滿足條件。

1

如果值只是一個連續範圍,那麼你可以使用RANGE

COMPUTE MCC_List=RANGE(MCC, 3001, 3004)=1. 

如果有需要被排除,那麼你可以使用RANGEANY組合離散值的數量不多,像這樣:

COMPUTE MCC_List=RANGE(MCC, 3001, 3004)=1 and ANY(MCC,3003,3005)=0. 

如果你的價值觀似乎更加隨意和離散然後實現這一目標的另一種方式,就是有存儲爲查找表中的值,然後匹配這些值。

下面我手動數據集中輸入這些值,但通常你會保存這些在任何一個文本/ CSV或Excel文件,然後你會在該文件中讀取。

這可以是一個很好的數據管理技術,尤其如此,如果你有,你有這樣的定義來派生出許多變數。因爲您可以存儲包含所有這些值的單獨文件,而不必將其硬編碼到語法中,並且可以通過程序簡單地讀入這些文件,並在需要時進行更新。

(雖然這種技術確實需要一個SORT CASES可能,如果處理大型數據集的過程放慢。因此,這種類型的技術是比較常用的SQL使用。你可以使用SPSSs STAR JOIN這不需要SORT但我我自己並不是那個命令的忠實粉絲)。

這裏是一個快速演示:

DATA LIST LIST /ID MCC. 
BEGIN DATA 
1 4 
2 5 
3 1 
4 6 
5 7 
END DATA. 
DATASET NAME DS1. 
SORT CASES BY MCC. 

DATA LIST LIST /MCC_LIST MCC. 
BEGIN DATA 
1 1 
1 2 
1 3 
1 4 
1 5 
END DATA. 
DATASET NAME DS2. 
SORT CASES BY MCC. 

DATASET ACTIVATE DS1. 
MATCH FILES FILE=* /TABLE=DS2 /BY MCC. 
EXE. 
0

有人問關於建模,無法統計。