プロシジャCOMPAREプロシジャ 概要 2つのデータセットを比較します。 構文 PROC COMPARE <option(s)>; BY <DESCENDING> variable-1 <<DESCENDING> variable-2 ...> <NOTSORTED>; I...2021.11.07プロシジャ
tips(SAS)inputステートメントで8文字を超える文字値を入力したい 1文字=1バイト=1桁として書いています。 うまくいかない例 data cards_char8_1; input COL_A $ COL_B $; cards; abcdefghij aaabbbcccddd 1234567890 1234...2021.08.21tips(SAS)
tips(SAS)inputステートメントでnull値を入力したい 実際にはcardsステートメントのお話になります。 null値がないとき data card_blank_1; input A B AA $ BB $; cards; 1 2 ABC DEF 3 4 XXX YYY ; run; まずはnu...2021.08.20tips(SAS)
プロシジャUNIVARIATEプロシジャ 概要 さまざまな記述統計量、グラフ表示、統計方法を提供します。 構文 PROC UNIVARIATE <option(s)>; BY variables; CDFPLOT <variables> < / options>; CLASS va...2021.06.16プロシジャ
tips(SAS)日付変換 日付変換です。ある程度パターン化されているのでメモしておきます。 yyyy-mm-dd → yymmdd系 YYMMDDxw出力形式を利用します。 x:区切り文字を指定。 B空白区切り。Cコロン区切り。Dハイフン区切り。N区切り文字なし。P...2021.03.29tips(SAS)
プロシジャPRINTプロシジャ 概要:データセットを表示します。 構文 PROC PRINT <option(s)>; BY <DESCENDING> variable-1 <<DESCENDING> variable-2 ...> <NOTSORTED>; PAGEBY...2021.03.22プロシジャ
プロシジャTRANSPOSEプロシジャ 概要:データセットを転置します。(選択した変数をオブザベーションに転置してデータセットを出力します。) 構文 PROC TRANSPOSE <DATA=input-data-set> <DELIMITER=delimiter> <LABEL...2020.09.13プロシジャ
tips(SAS)Frame(枠、フレーム)を作る Frameを作ります。出力データがゼロ件の場合、このFrameとmergeすることでオブザベーションが発生しない問題を回避します。フレーム、枠、Dummy、ダミー、箱、etc.. 人によっていろんな呼び方があるようです。 コード data ...2020.07.09tips(SAS)
プロシジャREPORTプロシジャ 概要:要約レポートまたは詳細レポートを作成します。 構文 構文 PROC REPORT <option(s)>; BREAK location break-variable </ option(s)>; BY variable-1<< DE...2020.07.08プロシジャ
tips(SAS)重複を削除する 重複したオブザベーションを削除したい。SORTプロシジャを利用します。 構文 PROC SORT DATA = ソート前のデータセット OUT = ソート後のデータセット NODUPKEY; BY ソートキー; RUN; proc sort...2020.07.04tips(SAS)
tips(SAS)プロシジャ実行時に結果ビューアへの出力を抑制する ods selectを利用します。 前提 結果ビューアって? 上の赤枠:結果(結果ウィンドウ)下の赤枠:結果ビューア(結果ビューアウィンドウ)※画像はSAS-Studioのものですが、PC版のSASでも同様のものがあります。 実行したプロシ...2020.07.03tips(SAS)
tips(SAS)プロシジャの出力結果をRTFファイルで出力する ods rtfを利用します。 構文 ods rtf file = "出力ファイル名(フルパス)"; (プロシジャ) ods rtf close; 例 ods rtf file = "/home/xxxxxxxxxx/data/dummy07...2020.07.02tips(SAS)
tips(SAS)プロシジャ出力を結果ウィンドウに出力しない ods exclude 〜 selectで実現できます。あまり実感したことはありませんが、プログラム内でプロシジャを何度も実行するときなど、若干処理速度が上がると思います。 構文 ODS EXCLUDE ALL; (プロシジャ) ODS S...2020.07.01tips(SAS)
tips(SAS)統計量のラベルを調べる ods outputでプロシジャの結果をデータセットに出力できますが、1つのプロシジャから多くの結果が出力されるため、その名称(ラベル名)は不明なことが多いです。 ods traceで調べられます。 構文 ods trace on; (プロ...2020.06.29tips(SAS)
tips(SAS)プロシジャの出力結果をデータセットに保存する ods outputを利用します。 構文 ods output 統計量の名前(ラベル) = 出力するデータセット名; (プロシジャ) ods output close; 例 ここで書いたLIFETESTプロシジャを利用しています。 ods ...2020.06.28tips(SAS)
プロシジャEXPORTプロシジャ 概要:データセットを外部データソースに書き込みます。 構文 PROC EXPORT DATA = <libref.>SAS data set <(SAS data set option(s))> OUTFILE = "filename" |...2020.06.27プロシジャ
プロシジャFORMATプロシジャ 概要:変数に対し独自の入力形式と出力形式を定義します。 構文 PROC FORMAT <option(s)>; EXCLUDE entry(s); INVALUE <$>name <(informat-option(s))> <value-...2020.06.26プロシジャ
オプション最後のオブザベーションかどうか判別したい (つまり、setで読み込んだデータセットの最後の行を判別したい。)setステートメントのendオプションを利用します。 コード data test; set sashelp.MACRS3 end = aaa; bbb = aaa; run;...2020.06.24オプション
SASSASHELP一覧 SASHELPに収録されているデータセットを練習用に利用する際に簡単に探せればと思ったのでまとめておきます。SASHELP内のViewを参照することで容易に情報を取得できます。記事執筆時の情報となります。 コード proc sort dat...2020.06.23SAS
tips(SAS)変数をマクロ変数に入れる あまりやらない処理ですが、業務で使うことがあったのでメモ。データセット内の変数であってもcall symputルーチンによってマクロ変数に入れることができます。 例1 コード data test_1; aaa = "xxx"; call s...2020.06.22tips(SAS)
SASSAS名の最大バイト数 SAS名の最大バイト数についてまとめておきます。※SAS名:データセット名、変数名、マクロ変数名など。 SAS名最大バイト数データセット32変数32マクロ変数32マクロ32配列32ライブラリ( libname )8ファイルネーム( file...2020.06.21SAS
関数剰余(余り)を求める mod関数を使います。 構文 mod(arg1, arg2);arg1 : 割られる数arg2 : 割る数(≠0) 例 data test; ans1 = mod(10,1); ans3 = mod(10,3); ans6 = mod(10...2020.06.20関数
プロシジャMEANSプロシジャ 概要:記述統計量を計算します。 構文 PROC MEANS <option(s)> <statistic-keyword(s)>; BY <DESCENDING> variable-1 <<DESCENDING> variable-2 .....2020.06.19プロシジャ
tips(SAS)空白を削除する 数値を文字列に変換したときに先頭に入ってしまう空白を削除したい。→ strip関数,trim関数,left関数などが利用できます。 関数名構文解説stripstrip(STR);先頭と末尾の空白を削除。trimtrim(STR);末尾の空白...2020.06.18tips(SAS)
tips(SAS)データセットの存在を確認する call symput とexist関数を利用して解決できます。ここではそれを利用して特定のデータセットの存在を確認し、その結果によって処理を分岐させる処理をしています。 以下のような処理をしています。 1.データセット"ds"が存在しない...2020.06.15tips(SAS)
tips(SAS)最大値、最小値を求める meansプロシジャを利用します。 例 テストデータを準備。 data test; set sashelp.class; run; 変数Ageについての最大値と最小値を求めます。 proc means data = test; var Ag...2020.06.14tips(SAS)
プロシジャPHREGプロシジャ 概要:COX回帰モデルに関する解析 (とりあえず構文だけです。) 構文 PROC PHREG <options>; ASSESS keyword </ options>; BASELINE <OUT=SAS-data-set> <COVAR...2020.05.06プロシジャ
プロシジャLIFETESTプロシジャ 概要:生存時間解析 構文 PROC LIFETEST < options>; BY variables; FREQ variable < / option>; ID variables; STRATA variable <(list)> <...2020.05.05プロシジャ
プロシジャFREQプロシジャ 概要 頻度を集計します。(要点だけの解説となっています。) 構文 PROC FREQ <options>; BY variables; EXACT statistic-options </ computation-options>; OUT...2020.05.04プロシジャ
tips(SAS)オブザベーション(レコード)を複製して空行を作る ここで書いたoutputステートメントを利用してオブザベーションを複製することができます。RTFファイル(帳票)を作成する際に、元データとしては空行が含まれたデータセットが必要になることがあります。 元データ data test; sort...2020.04.19tips(SAS)
ステートメントoutputステートメント 理解が曖昧だと仕事中に無駄に時間を浪費してしまうのでまとめました。 ルール 「暗示的なOUTPUT」と「明示的なOUTPUT」の2種類がある。データステップではOUTPUTと書かなくても暗示的なOUTPUTが存在する。データステップ内でOU...2020.04.16ステートメント
SAS配列入門 SASでも配列はあります。冗長な記事になっていますが、入門ってことで。 構文 数値変数の配列array 配列名 変数1 変数2 ・・・; 文字変数の配列array 配列名 $ 変数1 変数2 ・・・; 要素数を囲んでいる大かっこ([])は中...2019.12.03SAS
tips(SAS)データセットをExcelで出力する SAS Studioで確認しました。PC版のSASでも動くはずです。 やりたいこと このデータセットをエクセルで出力したい。ただしクリップボード経由の方法は用いない。このデータセットはSASHELP内にあったもの(CNTAINER)です。小...2019.11.24tips(SAS)
SASグラフ入門(パラメータごとに分ける) 通常のデータ構造であれば1つのID(人物等)の身長や体重などのデータは同じ行の別の列に格納され(横持ち)、1つのIDにつき1レコードとなります。しかし設計によっては1つのIDで、身長で1レコード、体重で別に1レコードとなる構造(縦持ち)も当...2019.11.23SAS
SASグラフ超超入門 SASをやっているとグラフを描かないといけない場面があります。社内にすでにあるプログラムはたいてい高度にカスタマイズされていて、グラフを描いたことがないとさっぱりわからないので超初歩を書いてみます。 構文 proc sgplot data ...2019.11.17SAS
tips(SAS)SAS StudioでExcelデータを読み込む SAS Studioでのみ動作確認できた方法です。クライアント版のSASで機能するか不明です。読み込む方法としては・libnameステートメント・importプロシジャ・DDE(Dynamic Data Exchange)が有名ですが、いず...2019.09.28tips(SAS)
tips(SAS)SAS StudioでExcelデータを扱う 自宅学習でお世話になることの多いSAS StudioではローカルPCにあるデータは直接触れません。(もしも方法があったら教えて下さい。)なので、ローカルPCで作成したファイルをSAS Studioの自分に割り当てられたフォルダにアップロード...2019.09.27tips(SAS)
tips(SAS)読み込むオブザベーション数を指定する firstobsで最初に読み込むオブザベーションの行数を指定できます。obsで最後に読み込むオブザベーションの行数を指定できます。 テストデータ data test_data; length NO 8.; set sashelp.class...2019.05.28tips(SAS)
tips(SAS)変数の並び替えをする 変数の並び(並び順、順番)を整える。formatステートメントを使います。 元のデータ proc print data = sashelp.class; run; 並べ替える data class_change; format name a...2019.05.27tips(SAS)
関数1つ前のレコードを取得する LAG関数を利用します。 構文 LAG<n>(argument)必須引数argument:数値または文字の定数、変数、式のいずれかを指定します。オプション引数n:ラグ値の数を指定します。 ※「SAS 9.4 関数とCALLルーチンリファレン...2019.05.23関数