サンプル問題

以下の問題はSASグローバル認定プログラムの認定試験で使用される問題形式の一例です。
注意:これらの問題は認定試験のすべての形式を表しているわけではありません。以下の問題は試験の準備度合をチェックするためのものではありません。



SAS Base Programming for SAS®9

問題1

以下のプログラムをサブミットします。
data test;
   input name $ age;
cards;
John +35
;
run;
出力データセットにはどの値が格納されますか。
  1. name              age
    ---------------------
    John               35 
  2. name              age
    ---------------------
    John           (欠損値)
  3. name              age
    ---------------------
    (欠損値)       (欠損値)
  4. データエラーのためDATAステップの実行に失敗する
正解 : "A"

問題2

SASデータセットEMPLOYEESには以下のオブザベーションがあります。
LNAME         FNAME       JOBCODE
---------------------------------
Whitley       Sam         na1       

以下のDATAステップをサブミットすると、このオブザベーションに対する出力SASデータセットの変数JOBDESCの値はどれになりますか。
data navigate;
  set employees;
  if jobcode = 'NA1' then jobdesc = 'Navigator';
run;
  1. navigator
  2. Navigator
  3. NAVIGATOR
  4. 欠損値
正解: "D"

問題3

以下のSASプログラムをサブミットします。
 
proc format;
   value score  1  - 50  = 'Fail'
               51 - 100  = 'Pass';
run;
出力形式の適切な指定は、以下のどのPRINTプロシジャですか。
  1. proc print data = sasuser.class;
       var test;
       format test score;
    run;
  2. proc print data = sasuser.class;
       var test;
       format test score.;
    run;
  3. proc print data = sasuser.class format = score;
       var test;
    run;
  4. proc print data = sasuser.class format = score.;
       var test;  
    run;
正解: "B"

問題4

以下のDATAステップがあります。
data loop;
  x = 0;
  do index = 1 to 5  by  2;
  x = index ;
  end;
run;

実行後の、データセットLOOPの変数XとINDEXの値はどれになりますか。

  1. x = 3, index = 3
  2. x = 3, index = 4
  3. x = 5, index = 5
  4. x = 5, index = 6
  5. x = 5, index = 7
正解: "E"

問題5

データセットONEには10オブザベーションが、データセットTWOには10オブザベーションが格納されています。以下のDATAステップで作成されるデータセットCOMBINEは何オブザベーションですか。

data combine;
  set one two;
run;
  1. 10
  2. 20
  3. 0(構文エラーのためDATAステップは失敗する)
  4. 10から20の間(マッチするオブザベーション数による)
正解: "B"


SAS Advanced Programming for SAS®9

問題1

以下のSASデータセットONEとTWOがあります。

以下のSASプログラムをサブミットします。
proc sql;
   select one.*, sales
         from one right join two
         on one.year = two.year;
quit;
以下のどのレポートが生成されますか。
正解: "D"

問題2

以下のSASデータセットONEとTWOがあります。

以下のSASプログラムをサブミットし、テーブルTRHEEを生成します。
data three;
merge one (in = in1) two (in = in2);
   by num;
run;


同じ内容のSASデータセットTRHEEを作成するSQLプログラムはどれですか。
  1. proc sql;
    create table three as
       select *
          from one full join two
          where one.num = two.num;
    quit;
    
  2. proc sql;
    create table three as
       select coalesce(one.num, two.num)
          as NUM, char1, char2
          from one full join two
          where one.num = two.num;
    quit;
  3. proc sql;
    create table three as
       select one.num, char1, char2
          from one full join two
          on one.num = two.num;
    quit;
  4. proc sql;
    create table three as
       select coalesce(one.num, two.num) 
          as NUM, char1, char2
          from one full join two
          on one.num = two.num;
    quit;
正解: "D"

問題3

以下のSASプログラムをサブミットします。
%let type = RANCH;
proc sql;
  create view houses as
  select * 
  from sasuser.houses
  where style = "&type";
quit;

%let type = CONDO;

proc print data = houses;
run;
作成されるレポートでは、STYLEの値が"RANCH"であるオブザベーションが表示されます。

以下のどの機能を使えば、WHERE句で現在のマクロ変数TYPEの値を展開しますか。
  1. GET
  2. SYMGET
  3. %SYMGET
  4. &RETRIEVE
正解: "B"

問題4

SASデータセットSASDATA.SALESには変数DATEに対する単一インデックスと、インデックス化されていない変数REVENUEがあります。

インデックスDATEが使用されるのはどのSASプログラムですか。
  1. proc print data = sasdata.sales;
       by date;
    run;
  2. proc print data = sasdata.sales;
       where month(date) = 3;
    run;
  3. data march;
       set sasdata.sales;
       if '01mar2002'd < date < '31mar2002'd;
    run;
  4. data march;
       set sasdata.sales;
       where date < '31mar2002'd or revenue > 50000;
    run;
正解: "A"