기본 데이터 단계에서 새 변수를 만들고이 새 변수를 기반으로 데이터 집합을 필터링해야합니다.새로 계산 된 변수에서 데이터 단계를 필터링 할 수 있습니까?
data want;
set have;
newVariable = 'aaa';
*lots of computations that change newVariable ;
*if xxx then newVariable = 'bbb';
*if yyy AND not zzz then newVariable = 'ccc';
*etc.;
where newVariable ne 'aaa';
run;
ERROR: Variable newVariable is not on file WORK.have.
나는 보통 2 단계에서이 작업을 수행하지만, 더 나은 방법이 있는지 궁금 하군요.
(물론 당신은 항상 WORK.have
에 존재하는 변수에 따라 복잡한 where statement
을 작성할 수 있습니다. 그러나이 경우 newVariable
의 계산이 너무 복잡하고 제 2의 data step
에 필터를 수행하는 것이 더 효율적이다)
이것에 대한 정보를 찾을 수 없었습니다. 대답이 문서에 있고 내가 찾지 못했다면 바보 같은 질문에 사과드립니다. 필요한 경우 질문을 제거하겠습니다.
감사합니다.
간단하고 훌륭하게 작동합니다. 감사! –
WHERE가 실패 할 때 이것이 작동하는 이유는 주목할 가치가 있습니다. 'WHERE' 절은 컴파일 타임에 나타나고 입력 레코드의 스트림에 적용됩니다. IF는 컴파일 된 문장이며 코드와 함께 인라인으로 적용됩니다. – DomPazz