SPSS 모델러에서 필드가 정수 목록 중에서 어떤 값을 갖고 있는지 비교하려고합니다 (예 : MCC = 3001 || 3002 || 30004). 그러나 가능한 값 목록은 매우 길다. 누구든지 'Or'/ '||'를 사용하지 않고 단일 값을 비교하기 위해 목록을 전달할 수있는 방법을 말해 줄 수 있습니까?여러 항목 비교
Q
여러 항목 비교
1
A
답변
1
이 당신이 찾고있는 무엇 : MCC는 뒤에 나와있는 값 중 하나를 포함하는 경우
If any(MCC, 3001, 3002, value3, value4, value5 ....)
조건이 충족된다. 값이 단순히 연속적인 범위 인 경우
1
다음 RANGE
사용할 수 있습니다
COMPUTE MCC_List=RANGE(MCC, 3001, 3004)=1.
당신이 RANGE
및 ANY
의 조합을 사용할 수있는 다음 제외 할 필요가 이산 값의 작은 숫자가있는 경우, 과 같이 :
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
문제는 모델러가 아니라 통계에 대한 질문을 받았다 :
여기에 빠른 데모입니다.
[stats.se]에서 더 잘 질문 할 수 있습니다. –