2016-07-04 2 views
1

초기 if 문 변수 계산 만 완료됩니다. ELSE 부분은 무시됩니다. 왜 누군가가 설명 할 수 있습니까? 많은 감사합니다.DO IF, ELSE : Else not be calculated

 
DATASET ACTIVATE DataSet1. 
DO IF ((A1_SCN2_PR1_UE = 0 & A1_SCN3_PR1_UE = 0 & A1_SCN4_PR1_UE = 0 & A1_SCN5_PR1_UE = 0) | 
     (A2_SCN2_PR1_UE = 0 & A2_SCN3_PR1_UE = 0 & A2_SCN4_PR1_UE = 0 & A2_SCN5_PR1_UE = 0) | 
     (A3_SCN2_PR1_UE = 0 & A3_SCN3_PR1_UE = 0 & A3_SCN4_PR1_UE = 0 & A3_SCN5_PR1_UE = 0)). 
Compute FM_zero = 1. 
ELSE. 
Compute FM_zero = 0. 
End IF. 
EXECUTE. 
+0

코드가 정상적으로 보입니다. 그것은 아마 당신의 데이터/변수 또는 잘못된 논리 연산 일 것입니다. –

+0

모든 변수가 정의 되었습니까? IBM의이 기사 : [COMPUTE WITH ELSE WITH COMPUTE] (http://www-01.ibm.com/support/docview.wss?uid=swg21476060)에서는 'Compute'를 생략하는 경우를 설명합니다. 'DO IF에서 부울 표현식에서 일부 변수가 정의되지 않은 경우의 계산. – CiaPan

+0

나는 그들이 SPSS 포인트에서 그들을 선택했기 때문에 나는 알고있다, 메뉴를 클릭해라. 해결책 처음에는 FM_zero = 0으로 설정했습니다. 변수를 만들고 non-1 값을 누락 된 것으로 설정하면 변수를 변경하기 위해 "ELSE"를 받아들이지 않습니다. 즉, ELSE COMPUTE FM_zero = O.가 필요합니다. . 시스미스 (FM_zero) = 0. 어떤 아이디어? – Yishoov

답변

1
당신의 ELSE 계산 대상이되지 않는 이유

확실하지,하지만 난 당신이 대신 식으로 DO IF를 삭제하고 가라고 :

compute FM_zero = 
    ((A1_SCN2_PR1_UE = 0 & A1_SCN3_PR1_UE = 0 & A1_SCN4_PR1_UE = 0 & A1_SCN5_PR1_UE = 0) | 
    (A2_SCN2_PR1_UE = 0 & A2_SCN3_PR1_UE = 0 & A2_SCN4_PR1_UE = 0 & A2_SCN5_PR1_UE = 0) | 
    (A3_SCN2_PR1_UE = 0 & A3_SCN3_PR1_UE = 0 & A3_SCN4_PR1_UE = 0 & A3_SCN5_PR1_UE = 0)). 

이이 모든 사실의 경우 1과 0을 넣어 것 모든 거짓 사례.

1

SPSS는 True, False 또는 모름 (sysmis)의 3 가지 논리를 사용합니다. 구문 참조 설명서에서 ... DO IF 또는 ELSE IF의 논리식에 의해 반환 된 누락 값은 의 END IF 명령으로 전달됩니다.

그래서 일반적으로 DO IF에 sysmis 테스트를 넣고 적절한 ELSE IF/ELSE를 따라야합니다.

관련 문제