SAS
こんな風に文字なのにちゃんとソートしたいときってありますよね。 data numbers; input number $; cards; Part1 Part2 Part3 Part4 Part5 Part6 Part7 Part8 Part9 Part10 ; 今までは数値型の変数をもう一つ用意して、ソートしていました。 このままソート…
PROC PRINTよりPROC REPOT使いましょうよ的なレポートです。 So You're Still Not Using PROC REPORT. Why Not? 確かにPROC REPOTの方が圧倒的に応用が効きますよね。 でもあまり懲ろうとして、ドツボにハマリそうな気がしないでもないです。
SASのODSとExcelに関するリンク集。 後で読みたい・・・ ODS and Microsoft Excel
SAS9.1から使える関数PROPCASEメモ。 Using the PROPCASE function 最初の1文字を大文字にする関数のようです。 従来の方法: DATA CAPITALIZE; INFORMAT FIRST LAST $30.; INPUT FIRST LAST; FIRST = LOWCASE(FIRST); LAST = LOWCASE(LAST); SUBSTR(FIRST,1…
http://www2.sas.com/proceedings/sugi28/086-28.pdf/:title=More _Infile_ Magic]より。 INPUTステートメントに関する、便利な技が書いてあるようです。
SAS to PDF and JPEGよりメモ。 SAS出力をPDFにしたり、CGMファイルをJPEGにできるようです。
SASのDEBUGオプションに関する追記です。 How to Use the Data Step Debuggerにもわかりやすく書かれています。
Problem Note 13954: PROC DBLOAD to create an Excel 5.0 file does not apply numeric formatting correctlyより SAS9.1.3でPROC DBLOADでExcel5.0を作成する際、Formatステートメントが正しく動作しないそうです。 data mydata; input id $ Val1 9.3; car…
SAS Data Step Debuggerを試してみました。 ATA TEMP/DEBUG; DO I=1 TO 10; X=I*2; OUTPUT; END; RUN; 実行すると、ログウィンドウの前に今まで見たことのない画面が。 よく見ると一番下の">"にコマンドを入力するようになっています。 ここで入力するコマン…
SAS at MITより DATAステートメントでdebugオプションなんてあったんですね。 後で試してみます。 To invoke the data step debugger, add the DEBUG option in the DATA statement. For example: data temp/debug; do i=1 to 10; x=i*2; output; end; run;
Advanced Tips and Techniques with PROC MEANS あとで読む。
Ways to Store Macro Source Codes and How to Retrieve Themよりメモ。 作成したSASマクロを、%INCLUDE、AUTOCALL LIBRARY、STORED MACROの4つの方法について書かれています。 ざっと読んだ限り、やはりSTORED MACROが最強のようです。 それに反して、AUTO…
Technical Support:マクロカタログからマクロのソースコードを参照するよりメモ マクロカタログを実行せずに参照する方法。 SAS Ver9以降なら下記の方法でできるそうです。ストアドコンパイルマクロのサンプル SASのサンプルでは「C:\temp」になっていたの…
Merging Data Eight Different Waysよりデータセットをマージする8つの方法が紹介されています。 以下のPATDATAとADVERSEの2つのデータセットをSUBJECTでマージし、 かつADVERSEのみ存在するデータを残したものをALLDATA0に格納するやり方を 例としています…
http://support.sas.com/kb/31/366.html/よりメモ。 PROC PRINTで空行を挿入するサンプルが紹介されています。 この例では5オブザベーション毎に空行を挿入しています。 /* Insert blank observation after every 5 observations */ data class_blanks; set …
DATA Step vs. PROC SQL: What’s a neophyte to do?よりメモ。 DATAステップとPROC SQLを対象とした記事のようです。 個人的になかなか興味深いのであとで読む。
http://support.sas.com/kb/26/140.html/よりメモ。 ひとつのデータセットの変数の値を見て、変数のグループごとにデータセットを作る方法のようです。 サンプルでは変数colorの値を参照して、その値をグルーピングし、 かつそのグループごと(blue,green,red…
Technical Supportより SAS System6から追加変更になったフォーマットについてメモ。 ときどき忘れちゃうんですよね。 まず文字については、32767バイトまで拡張されたものの、フォーマット名自体の制限は8文字のまま。 (1) 文字フォーマットで割り当て可能…
Magic with CALL EXECUTEより http://www2.sas.com/proceedings/sugi22/CODERS/PAPER86.PDF DATAステップの中にPROCステップを書こうと思ってもできないのですが、 CALL EXECUTEを使うとできるようです。 DATA _NULL_; SET SALES END=NOMORE; TOTAL + AMOUNT…
Googleの書籍検索でSASで検索をすると、SASの書籍が試し読みできます。 ただ、英語の書籍ばかりです。
先日の年下2桁から4桁にしてやんよに関する追記です。 SASでもともと年が2桁で入っている場合、注意が必要です。 SASの設定でYEARCUTOFFオプションというのがあります。 この設定の既定値が1920年に設定されています。 この設定が1920年になっているため、…
この前のchklog.sasを動かしてみて、私なりに編集してみました。 /* ============================================================== Program name:chklog.sas Description:SASログファイルを読み込み、Error,warning, その他(Missing等)ごとに出力する。 …
SAS Tips and Tricksより。 保存したログファイルからワーニングやエラーを探すことができるみたいです。 %MACRO chklog; /* Zorgen dat deze code geen log genereerd */ PROC PRINTTO log="h:\nolog.log"; RUN; /* Actief log wegschrijven */ dm log 'fil…
かなりの小ネタ。 年が90や01などと2桁で入力された場合、 それが文字列ならば dt_year = INPUT(('20' || in_year),4.);で良いかもしれません。 では数値の場合は dt_year = INPUT(('20' || PUT(in_year,4.)),4.);と、まず文字にしてからさらに数値にもどす…
libnameで直接Excelを読み込んでしまう方法。 こんなやり方があったんですね。参考になります。 %let execpath = " "; %macro setexecpath; %let execpath = %sysfunc(getoption(sysin)); %if %length(&execpath) = 0 %then %let execpath = %sysget(sas_exe…
SASのサイトでもいくつか技術情報が掲載されていますが、それ以外にもTipを載せていて、参考になるサイトがあります。 参考になりそうなサイトをちょっとずつ追加していきます。 http://b.hatena.ne.jp/masayukirin/