解析用プロシジャについてのメモ
あくまで自分用メモですが。
解析用プロシジャの一覧です。
解析用プロシジャに関しては、こういう分析機能がある、という一覧は必要だと感じました。
【基本統計】
CORR
様々な相関係数の計算
FREQ
度数表・集計表の作成、および、集計データに対する解析
MEAN、SUMMARY
基本統計量の算出
【データの順位付けと標準化】
rank
順位付け
私の業務で使ってるのはこれくらいかな。都度追加していきます。
SASの基本
SASプログラムには以下の構成で行う。
①DATAステップ 新しいデータセットの作成 データ加工・抽出・演算 ②PROCステップ 統計処理 グラフレポートの作成
①外部ファイルをSAデータセットに変換したり、すでに作ってあるデータセットを、加工したりして、新しいデータセットを作る。
②PROCは、処理内容によって、用意されているプロシジャを、PROCのあとに設置することで、利用できる便利なもの。
DATAステップ
DATA TEST;/*今回作るデータセット*/ SET sashelp.aacomp; /* 用意されているデータセット*/ run;
PROCステップ
proc contents VARNUM /*contentsプロシジャは、変数情報を出力する。*/ data = sashelp.aacomp; /*データセットの変数情報を見たいものをセット。*/ run;
【SAS】SASでループ。マクロ版と通常版の比較。
たまに書き方を混乱する人のために。
/*普通のループ*/ data test; do i = 1 to 10; put i; end; run;
/*マクロのaaaの中でループをするときに、置き換えを行う。*/ %macro aaa(no = 10); %do i=1 %to &no.; %put &i.; %end; %mend; %aaa;
こんな書き方もあるよ。
%macro test1010(A3);
proc print data=sashelp.&A3. ;
run;
%mend;
/*指定のライブラリ名を引数として実行*/
%test1010(A3=aacomp);
【SAS】マクロ入門 置き換え
SASを書く上で、絶対に覚えなければいけないこと。
それはマクロ変数です。
SASマクロは、反復して書かなければならないステートメントを簡略化したり、
ステートメント中のパラメータを可変にして、複数の処理を使えるようにするなどの機能を持ちます。
それをメモがてら書いていきます。
example
%LET TEST = sashelp.aacomp; /* マクロ変数を定義 */
PROC print data = &test. ;
RUN;
%LETで、TESTというマクロ変数を作成し、それに値を入れる。
%let TEST = SASHELP.aacomp;
定義したら、これをコード上で使う場合、 &TEST. というふうにくっつける。
これでマクロ変数がプログラム上で使えるようになる。
PROC print data = &test. ;
これで、マクロ変数を定義して、指定のところに出力できるということがわかったが、次に、きちんと、定義したマクロ変数の中身を確認する癖をつけよう。
%PUT &マクロ変数名;
これによって、マクロ変数に入ってる値を確認できる。
これはプログラムを組んだ直後、かならずテストするようにくせにしよう。
【doステートメントの指定例】
do i=1 to 10; ループの度にiを1ずつ増やし、10回処理を繰り返す
do i=1 to n; n回処理を繰り返す
do i=2 to 10 by 2; iの初期値は2、ループの度に2ずつ増やす
do j=10 to 2 by -2; jの初期値は10、ループの度に2ずつ減らすdo n=1,2,4,8,16; ループの度にnの値を1,2,4,8,16の順に変更する
【SAS】マクロ変数入門2 マクロの登録と実行について
データセットあるいは、変数を変えて、何度か同じ処理を実行したい場合、マクロを使うと便利。
これは絶対業務で使うので覚えとよい。
%macro マクロ名; ー処理プログラムー %mend マクロ名; /* マクロを登録完了 */ %マクロ名; /* これで、登録したマクロを実行する。 */
%MACRO ~ %MEND; の中に、マクロとして登録したいプログラムを書く。
最後に%マクロ名;で、実行することができる。
もう少し丁寧に説明。↓
/* マクロ登録 */ %macro TEST ; proc print data=sashelp.aacomp; run; %mend TEST;
PRINTプロシジャでデータセットSASHELP.AACOMPを出力するマクロTESTを登録。
この段階ではまだ実行されない。
↓これによって実行ができる。
/* 登録したマクロを実行*/ %TEST;
最後に。
マクロ登録したプログラムの中で、データセットなどをマクロ変数化し、使うことができる。
/* マクロ登録*/
%macro test;
proc print data=&AA;
run;
/*マクロ変数に代入*/
%let AA = sashelp.aacomp;
/* マクロ実行 */
%mend test;
これらは業務で頻繁に使うので覚えておく。
【SAS】 %DO ループ メモ
マクロ変数名を指定するか、またはマクロ変数名を生成するテキスト式を指定する。
DATA TEST; %DO 変数 = 1(開始) %to 5(終了) ; 繰り返す処理プログラム; %end; RUN;
i=1 %to 5 :
反復%DOステートメントと%ENDステートメント間にある、
マクロの部分を処理する回数を制御する整数を指定するか、そのような整数を生成するマクロ式を指定する。
i=1によって、i変数には1が代入されていて、ループを繰り返すたびに変数に加算されていき、5でループを終了する。
【example】
data TEST; do i = 1 to 5; put i; end; run; 出力ログ 1 2 3 4 5