Study SAS

統計解析ソフトウェアSASについて学習したことのまとめやSAS認定試験対策など

2014-02-01から1ヶ月間の記事一覧

SAS Base Programmer 練習問題7

user.txtの内容が以下であるとして ----+----1----+ Ruth 39 11 Jose 32 22 Sue 30 33 John 40 44次のプログラムをサブミットする。 data user; infile 'user.txt'; input employee_name $ 1-4; if employee_name = 'Ruth' then input idnum 9-10; else inpu…

SASプログラムのパフォーマンス計測オプション

ステップごとの使用メモリサイズなどのリソース情報を表示したい場合、fullstimerオプションを使う。 options fullstimer; data result; do i = 1 to 10000; do j = 1 to 10000; k = i * j; end; end; run;OSのシステムコールを利用して情報を取得しているた…

SAS Base Programmer 練習問題6

WORK.LEVELSデータセットのPRINTプロシジャ出力は以下であるとする Obs name level 1 Frank 1 2 Joan 2 3 Sui 2 4 Jose 3 5 Burt 4 6 Kelly . 7 Juan 1 data work.expertise; set work.levels; if level = . then expertise = 'Unknown'; else if level = 1 …

SAS Base Programmer 練習問題5

SASプログラムをサブミットしたところ、以下のSAS logが出力された 2 data gt100; 3 set ia.airplanes 4 if mpg gt 100 then output; 22 202 ERROR: File WORK.IF.DATA does not exist. ERROR: File WORK.MPG.DATA does not exist. ERROR: File WORK.GT.DATA…

SAS 9.3M1 で結果をExcelファイルに出力する方法

proc export data=sashelp.prdsale dbms=xlsx outfile="prdsale.xlsx" replace; run;exportプロシジャを使用してExcel2010形式で出力することができる。 Unix版でも出力可能。

byステートメント

by

data account; input group_id user_id; datalines; 0 1 0 2 0 3 0 4 1 5 1 6 1 7 2 8 2 9 ; run; data account; set temp; by group_id; is_first = first.group_id; is_last = last.group_id; run;byステートメント使うと、それぞれの変数グループの 最初…

SAS Base Programmer 練習問題4

data work.totalsales (keep = monthsales{12} ); set work.monthlysales (keep = year product sales); array monthsales {12} ; do i=1 to 12; monthsales{i} = sales; end; run;このプログラムをサブミットするとどのような結果になるか。 work.monthlysa…

_infile_ 自動変数

自動変数 _infile_ を使用するとinfileステートメントの入力バッファの中身を見ることができる。 data temp; infile datalines; input str $; buffer = _infile_; datalines; abcdefghij ; run; str buffer abcdefgh abcdefghij 入力バッファには10文字分渡…

SAS Base Programmer 練習問題3

以下の内容の生データファイル amount がある ----+----1----+----2----+----3 $1,234data test; infile 'amount'; input @1 salary 6.; if _error_ then description = 'Problems'; else description = 'No Problems'; run;このプログラムをサブミットする…

Enterprise Guide 講義資料

SAS Enterprise Guide によるデータ解析入門 @ 千葉大学大学院サンプルデータもダウンロードできるようになっているので自習できそう

SAS Base Programmer 練習問題2

データセットCOMPANY.PRICESに以下のようなデータが入っている OBS prodid price producttype sales returns 1 K12S 5.10 NETWORK 15 2 2 B132S 2.34 HARDWARE 300 10 3 R18KY2 1.29 SOFTWARE 25 5 4 3KL8BY 6.37 HARDWARE 125 15 5 DY65DW 5.60 HARDWARE 45…

SAS Base Programmer 練習問題1

以下のSASプログラムがサブミットされたとする。 data test; set sasuser.employees; if 2 le years_service le 10 then amount = 1000; else if years_service gt 10 then amount = 2000; else amount = 0; amount_per_year = years_service / amount; run;…

proc printでの変数ラベル改行

splitオプションで改行文字を定義する。 長い変数ラベルを任意の位置で改行できる。 data temp; a = 1; b = 2; output; label a = "very long*variable name"; label b = "very vary*long variable*name"; run; proc print data=temp label split="*"; run;…

infileのdsdオプション

infileステートメントのdsd(Delimiter-Sensitive Data)オプションの使いどころについてまとめた。 1. 欠損値があるデータの読み込み data temp; infile cards dlm=','; input a b c d; cards; 1,,3,4 ; run;デフォルトオプションでは区切り文字が連続してい…

debugオプション

DATAステップにdebugオプションを付けるとデバッガーを起動することができる。 ブレークポイントの設定やステップ実行などが可能。 data testdata / debug; do i = 1 to 10; output; end; run;Enterprise Guideではデバッグ環境の初期化エラーとなった。 SAS…

SASでHello World

画面にHello Worldを表示するコードをSASで書くと data _null_; put "Hello World !"; run;こんな感じか。 data hellowold; msg = "Hello World !"; run; proc print data=hellowold; run;こっちの方がSASっぽいような気がする(個人の感想)

until文実行後の変数の値

while文の時と同様、untilを抜けた後の変数の値も SASグローバル認定プログラム試験で頻出 data work.RetData; i = 0; do until(i > 7); i = i + 1; end; run; OBS i 1 8 iが7より大きくなるまでiがインクリメントされ、 i = 8 でuntilのブロックを抜ける。…

_error_ 変数について

_error_ 変数について調べたことのまとめ できること Dataステップでエラーが発生したオブザーベーションの判別 _error_を参照して、エラーが起こったら○○するみたいな記述ができる data work.TestData; input num; is_error = _error_; cards; 0 1 'a' 2 3 …

while文実行後の変数の値

SASグローバル認定プログラムでよく出題される while文から抜けた後の変数の値を答える問題下記のコードを実行したときにwork.RetDataに 格納されるiの値はいくつになるか? data work.RetData; i = 0; do while(i < 7); i = i + 1; end; run; proc print da…

formatプロシージャで作成したユーザー定義formatの保存先

ユーザー定義formatはデフォルトではwork.formatsに保存される。 proc format; value eval 1='OK' 0='NG'; run; proc contents data=work._all_ nods; run; proc format fmtlib; run;実行結果 # 名前 メンバータイプ ファイルサイズ 更新日時 1 FORMATS CATA…