BookmarkSubscribeRSS Feed

SAS Certified Advanced Programmer 덤프 풀이 92-94

Started ‎06-29-2020 by
Modified ‎06-29-2020 by
Views 539

#92.

  1. Given the following SAS data sets ONE and TWO:

    ONE              TWO

NUM CHAR1      NUM CHAR2

------------------ ------------------

1        A1       2         X1

1        A2       2         X2

2        B1       3         Y

2        B2       5         V

4        D

 

The following SAS program is submitted creating the output table THREE:

proc sql;

   create table three as

   select one.num, char1, char2

   from one, two

   where one.num = two.num;

quit;

 

 

THREE

NUM CHAR1 CHAR2

----------------------- 

2        B1       X1 

2        B1       X2 

2        B2       X1 

2        B2       X2

 

 

Which one of the following DATA step programs creates an equivalent SAS data set THREE?

 

[정답] D

data three;       

set one;

do i = 1 to numobs;

set two(rename = (num = num2)) point = i nobs = numobs;

if num2 = num then output;

end;

 
 

 1.png

 

 

 

 

 

 

 

[풀이]

1부터 관측수까지 단순반복하는 DO-TO 반복문을 사용하였습니다.

 

SET: 1. 일대일 가로 결합 , 2. 상하 자료결합(data set 쌓기), 3. 상하 자료 결합(data set 쌓기)를 할 수 있습니다.

 

NOBS옵션: SAS데이터셋에 있는 관측 수 값을 할당하는 것으로 Numobs를 변수명으로 사용했습니다.

 

POINT옵션: 임시 변수를 지정하는데, 이 변수의 숫자 값은 어떤 관측치를 읽는 것인지를 결정합니다. SET STATEMENT안에 POINT옵션을 사용하여, 번호(숫자)값을 갖는 I라는 임시변수를 생성한 것을 볼 수 있습니다.

 

RENAME문장을 이용하여 변수명을 변경하였습니다. TWO TABLE NUM변수명을 NUM2변수명으로 변경하였습니다.

 

IF ~ THEN 조건문과 OUTPUT문장(현재 변수 값들을 데이터에 저장하라입니다.)을 사용하여 num2num이 같으면 데이터에 저장하였습니다.

 

 

93.The following SAS program is submitted:

data two;

y = '2';

run;

%let x = 10;

%let var = y;

data one;

set two (keep = &var);

z = &var * &x;

run;

 

Which one of the following is the value of the variable Z when the program finishes execution?

  1. _ERROR_
  2. 20 (as a numeric)
  3. 20 (as a character)
  4. . (missing numeric)

 

[정답] B

[풀이]

SAS  MACRO를 직접 입력하기 위해서는,

%LET XXX=YYY; : 매크로 XXX YYY로 출력되는 매크로를 생성합니다.

매크로를 생성할 때는 %LET명령어를 통해 만듭니다. 반드시 %를 붙여야 매크로 칼럼 생성으로 인식합니다.

 

&XXX. :매크로 XXX를 출력합니다.

&명령어를 통해 %LET 명령어로 생성된 매크로 변수값을 불러올 수 있습니다. &명령어를 매크로 trigger(방아쇠)라고도 합니다.

모든 매크로는 &를 통해 불러옵니다.

 

%PUT &=XXX, : 매크로 출력값을 로그창을 통해 확인합니다.

%put은 표로 이뤄진 결과값을 출력하는게 아니라 로그 기록에 결과값을 출력하는 명령어입니다. 매크로 칼럼과 결과값을 로그창에서 확인할 수 있습니다.

 

keep문은 결과 데이터셋에서 남기고 싶은 변수를 선택하는 함수입니다.

문법은 ‘KEEP Variable-list;’입니다. Variable-list에 넣은 변수를 제외하고는 제거합니다.

 

z값은 &var(=’2’) * &x(=10)으로 매크로 변수 var은 문자로 입력이 되있고, %x는 숫자로 입력되어있어, 문자 * 숫자로 인식할 수 있습니다.

하지만, sas data setp은 자동으로 문자를 숫자로 바꿔 계산을 수행합니다.

 

 

 94. The SAS data set TEMP has the following distribution of values for variable A:

 

    TEMP

A        Frequency

--------------------

1        500,000

2        500,000

6        7,000,000

8        3,000

 

[정답] C

 

data new;   

set temp;   

if a = 6 then

        b = ‘Large’;   

else if a in (1, 2) then

        b = ‘Medium’;   

else if a=8 then

        b = ‘Small’; run;

run;

 

[풀이]

데이터 세트에서 발생하는 순서대로 가장 많이 발생하게 하는 조건을 우선적으로 하여야 합니다.

Frequency가 가장 많은 수부터 적은 수까지 데이터세트가 구성되어야 합니다.

 

 

Version history
Last update:
‎06-29-2020 11:56 AM
Updated by:
Contributors

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

Article Labels
Article Tags