SAS Base, A00-211 Crambible,

SAS 크램바이블, SAS 베이스 자격증 문제풀이    


QUESTION NO: 4


Given the SAS data set SASDATA.TWO: SASDATA.TWO X Y

5 2
3 1
5 6


The following SAS program is submitted: 


data sasuser.one two sasdata.three;

set sasdata two;

if x = 5 then output sasuser.one; 

else output sasdata two;
run;


이 문제는 오류가 있어서 다음과 같은 내용으로 질문을 수정해야한다고 합니다. 참고하세요. 


data SASUSER.ONE SASUSER.TWO OTHER;

set SAS.TWO;

  if x=5 then output sasuser.one;

  if y<5 then output sasuser.two;

output;

Run; 



What is the result?


A. data set SASUSER.ONE has 5 observations 

    data set SASUSER.TWO has 5 observations 

    data set WORK.OTHER has 3 observations 


B. data set SASUSER.ONE has 2 observations 

    data set SASUSER.TWO has 2 observations 

    data set WORK.OTHER has 1 observations


C. data set SASUSER.ONE has 2 observations 

    data set SASUSER.TWO has 2 observations 

    data set WORK.OTHER has 5 observations


D. No data sets are output. 

The DATA step fails execution due to syntax errors.





SASDATA라는 라이브러리에 X 와 Y 변수를 가지고 있는 TWO라는 데이타가 있는데요.  

X Y

5 2 

3 1 

5 6 

이런 데이타입니다. 


이 데이타를 불러와서, 

1) SASUSER라는 라이브러리에 One 데이타를, 

2) SASUSR 라는 라이브러리에 Two 데이타를, 

3) Work 라이브러리에 other란 데이타를 만들려고 합니다. 


set SASDATA.TWO 라고 되면, 데이타가 한줄씩 불러오게 되는데요. 

ONE    TWO   OTHER

X  Y      X  Y      X   Y

5   2      5   2      5   2    <- 첫번째 데이터를 불러왔을때

5   2      5   2                 <- 첫번째 두번째, IF값 (X=5 라서 ONE, Y < 5 TWO에 들어감)

3   1      3   1      3   1    <- 두번째 데이터를 불러왔을때 

             3   1                  <- 첫번째 두런째, IF라인 값 

5  6       5   6      5   6     <- 세번째 데이터를 불러왔을때 

5  6                                <- 첫번째 두번째, IF 라인 값 


따라서 One 데이타에는 5개, Two 데이타에는 5개, Other데이타는 3개가 되겠습니다. 


Answer: A 


반응형

+ Recent posts