たまのおもひで

好きなことに熱中し大抵すぐに生きがいになります。趣味と仕事となんでもないことも。

【SAS Base】初学者向けチートシート(資格試験対策)

以下の点だけをとりあえず確実に押さえておけば、SAS Base Programmingを受験してもある程度は戦えるはずです。より詳細に学習したいときは、リンク先の記事を読むか問題を解いてみてください。

概ねSAS Base試験の参考書『SAS Certified Specialist Prep Guide(SAS 9.4)』に準拠しています。


① DATAステップ

data aaa;
 set sashelp.iris;
 if species = "Setosa" then type = 1;
  else type = 2;
put "log:" species= type=;
run;


② マージ

※データセットaa、bbは事前にソートされている必要あり。

data ●●;
 merge aa bb;
 by id;
run;


③ データセットの概要を把握

proc contents data=sashelp.iris;
run;


④ ファイルの取り込み

proc import datafile = 'C:\aa\bb.csv'
 dbms = csv
 out = ●●
 replace;
 delimiter = ',';
 getnames = 'YES';
run;

※詳細はこちら。
【SAS Base】PROC IMPORTの注意点⇨https://mojimojimm.hatenablog.com/entry/2025/07/16/215843


⑤ データセットを出力

options firstobs=1 obs=10;

proc print data=●●;
 id num name;
 var salary phonenum;
 label salary = 's';
 label phonenum = 'pn';
 where salary > 3000;
run;


※下記コードは事前にjobでソートしておく必要あり。

title '●●●';
footnote '●●●';

proc print data=●●;
 var salary phonenum;
 sum salary;
 by job;
 id job;
 pageby job;
run;


⑥ SORTプロシジャ

proc sort data=●●;
 by descending aa bb;
run;

※詳細はこちら。
SAS Base】PROC SORTの問題集(降順、昇順、欠損値の扱いについて)
https://mojimojimm.hatenablog.com/entry/2025/07/16/220333  


⑦ MEANSプロシジャ ※データセットは事前にccでソートされている必要あり。 proc means data=●● maxdec=2; var aa bb; by cc; run; ⑧ FREQプロシジャ proc freq data=●● / list nocum; tables AAA*BBB; ※詳細はこちら。
SAS Base】PROC FREQの注意点(NLEVELS、ORDERなど)
https://mojimojimm.hatenablog.com/entry/2025/07/17/215138    


⑨ TRANSPOSEプロシジャ proc transpose data=●● out=●●; var aa bb cc; id num; by date; run; ⑩ FORMATプロシジャ proc format; value aaa 1 = "xxx" 2 = "yyy"; value bbb 1 -< 50 = 'zzz' 50 -< 100 = 'sss'; value $ccc "A" = "ttt" "B" = "uuu"; run; data ●●; set ●●; format abc aaa. def bbb. ghi $ccc.; run; ⑪ FIRST、LASTの使用 data ●●; set ●●; by id; retain count; if first.id then count = 0; count + 1; if last.id then output; run; ⑫ libnameステートメント libname cert 'C:\aa\bb\cc\'; data cert.aaa; set ●●; if _n_= 5 then output; run; ⑬ マクロ変数とDO LOOP %let a=count; data loop_example; do x = 1 to 5; put "&a is " x; output; end; run; ※詳細はこちら。
SAS Base】DO WHILEとDO UNTILの違い、その応用
https://mojimojimm.hatenablog.com/entry/2025/07/17/205802  


⑭ 出力について ods html file='C:\aa\bb\cc.html'; proc print data=●●; run; ods html close; ods html path="%sysfunc(pathname(work)); ⑮その他出題されるであろうSAS関数 ※詳細はこちら。
SAS Base】SAS日付の扱いについての問題集(MDY関数、INTCK関数、INTNX関数)
https://mojimojimm.hatenablog.com/entry/2025/07/17/211100    

SAS Base】SASにおけるSCAN関数、SBSTR関数の問題集(SAS Base Programming準拠)
https://mojimojimm.hatenablog.com/entry/2025/07/18/065218

SAS Base】CATX、COMPBL、COMPRESS関数の問題集
https://mojimojimm.hatenablog.com/entry/2025/07/18/194359

SAS Base】CEIL、FLOOR、INT、ROUND関数の問題集
https://mojimojimm.hatenablog.com/entry/2025/07/18/194733


これらのステートメント、プロシジャを引数まで完璧に説明できるようになれば、SAS Baseには合格できるレベルにあると思います。 皆さまの幸運をお祈りいたします! 以上。