Sas Crambible 4

Adios_Hosang·2022년 9월 28일
0

SAS crambible

목록 보기
4/20

Q4.

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 sasuser.two other;
set sasdata.two;
if x=5 then output sasuser.one;
if y<5 then output sasuser.two;
output;

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

이 문제는 set 구문에 주목해야 합니다.

먼저, sasdata.two 데이터셋은 3개의 관측치를 가지고 있습니다.
그래서 set sasdata.two 구문을 통해 데이터셋 sasuser.one, sasuser.two, other에 각각 sasdata.two 데이터셋의 3개의 관측치가 할당이 됩니다.

그 다음 if 조건문에 맞게 다시 한번 sasdata.two 데이터셋의 관측치를 할당시킵니다.
즉, if x=5 조건을 만족하는 sasdata.two 데이터셋의 관측치는 2개이고 output을 sasuser.one으로 받으므로 sasuser.one 데이터 셋은 총 5개의 관측치를 가집니다.
마찬가지로, y<5를 만족하는 sasdata.two 데이터셋의 관측치는 2개이고 이것은 sasuser.two 데이터셋에 할당되므로 sasuser.two 데이터 셋의 관측치의 개수 역시 5개입니다.
other에 해당하는 관측치는 없으므로 데이터셋의 관측치는 총 3개입니다.

글로 보면 어려우므로 직접 실행해보시는 것을 추천합니다.

아래의 코드를 실행해보셔도 됩니다.

data two;
input x y;
cards;
5 2
3 1
5 6
;
run;

data one_ex two_ex other;
set two;
if x = 5 then output one_ex;
if y < 5 then output two_ex;
output;
run;

profile
IT를 시작하고자 합니다

0개의 댓글