2013-04-28 1 views
3

을 읽는 순서를 설명한다. SAS가 데이터 단계를 읽는 방법에 대한 정보를 찾았을 때 일반적인 데이터 단계와 관련하여 이해할 수없는 병합 목적을 읽는 방법에 대한 정보가 있습니다. 예를 들어 다음과 같은 코드 라인이 있다고 가정 해 보겠습니다.SAS는 (개념) 데이터 단계 내가 SAS는/읽기 데이터 단계를 실행하는 방법을 이해할 필요가

data work.DATA; 
    if amount_a= . then 
    amount_a= 1; 
    amount_b= 1; 
    amount_a= . ; 
    total = (amount_a + amount_b) + 0 ; 
run; 

이제 '총'은 무엇입니까? 본질적으로 SAS가이 단계를 읽는 방법을 알고 싶습니다. 어느 행을 먼저 읽거나 실행할 것입니까? 그것은 마지막에 시작하고, 그 길을 작동합니까? 아니면 처음부터 시작해서 아래로 내려 가야하나요? 감사합니다. .

답변

5

에 SAS 데이터를 위에서 아래로 단계 프로세스 코드는 DATA 문으로 시작하여 RUN; 문을 종료. 코드 단계에 명시적인 출력 문이없는 경우 데이터 단계는 OUTPUT; 문 앞에 RUN;이 포함되어 있음을 암시합니다. SAS 이후

을 실행하기 전에 컴파일 된 "해석"언어, 각각의 데이터 단계에 대한 코드이다. 컴파일의 일부는 프로그램에 의해 사용되는 모든 변수의 실행 속성을 포함하는 PDV (Program Data Vector)이라는 구조를 생성하는 것입니다. 변수는 코드에서 (위에서 아래로) 나타나는 순서대로 PDV에 정의됩니다.

편리한 디버깅 도구를 사용하면 출력은 프로그램 실행 중에 SAS 로그 파일에 기록 될 수 있습니다있는로 PUTLOG 문이다. 예를 들어,이 고려 : 내가 설명하기 위해 명시 적 OUTPUT; 문을 추가

data work.DATA; 
    if amount_a= . then 
     amount_a= 1; 
    amount_b= 1; 
putlog amount_a= amount_b=; 
    amount_a= . ; 
putlog amount_a= amount_b=; 
    total = (amount_a + amount_b) + 0 ; 
putlog amount_a= amount_b= total=; 
    output; 
run; 

공지 사항. 결과는 SAS 데이터 세트이며 하나의 관찰과 세 개의 변수가 있습니다. 변수 total은 계산시에 amount_a이 누락 된 값이 누락됩니다. 또한 "누락 된 값이 생성되었습니다"라는 메시지가 SAS 로그에 표시됩니다.

모든 SAS이이 SAS 언어 참조에 수행하는 방법에 대해 배울 수있는 가장 좋은 장소 : 개념 책. Here is a link (SAS 버전 9.3) 특히 데이터 처리 단계 장을 읽었다.

+0

설명해 주셔서 감사합니다. 매우 도움이됩니다. –