2016-12-15 7 views
1

SPSS 모델러에서 필드가 정수 목록 중에서 어떤 값을 갖고 있는지 비교하려고합니다 (예 : MCC = 3001 || 3002 || 30004). 그러나 가능한 값 목록은 매우 길다. 누구든지 '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가. 따라서 기술이 유형의 더 일반적으로 당신은 SORT를 필요로하지 않는 SPSSs STAR JOIN를 사용할 수 있습니다. SQL에서 사용하지만 '필요하지 않지만 나는 그 명령에 대한 열렬한 팬이 아니다.)

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

문제는 모델러가 아니라 통계에 대한 질문을 받았다 :

여기에 빠른 데모입니다.