かきためぬ

書き溜めたいきもちは山々だけど

2016-01-01から1年間の記事一覧

【SAS】1つのDATAステップで複数のデータセットを作成【OUTPUTステートメント】

SAS

条件ごとにデータセットを分けたいとき、OUTPUTステートメントを使用すると1つのDATAステップで作成できる。 例えば、未成年者と成年者のデータが混ざったデータセットを、それぞれ分けたいとする。 /*元データ作成*/ data sample1; length id 8. name $10. …

【SAS】文字列連結③ CATX関数の活用例【連結する変数の数が定まっていないとき】

SAS

連結する変数の数が決まってるなら連結演算子(||)でも可能だけど、決まってないときはCATX関数が活用できる。例えば以下のようなとき。 元データのほうは、それぞれの人が何個かずつ買うものがあって、その数の分だけレコードをもつ。それを、1人1レコードに…

【SAS】文字列連結② 連結演算子(||)を使う場合の、空白なしの連結【STRIP関数】

SAS

単純に空白なしで連結したいだけなら、連結演算子使っても書ける。 ※連結のところ以外は前回の記事と同じ。 /*元データ作成*/ data sample1; length animal1-animal5 $10. ; input animal1-animal5; datalines; dog cat rabbit bird mouse ; run; /*文字列連…

【SAS】文字列連結① 区切り文字を使う連結で、余計な空白にイライラしない【CATX関数】

SAS

例えば別々の変数に入った値「dog」「cat」「rabbit」「bird」「mouse」みたいなのを「/」で区切って「dog/cat/rabbit/bird/mouse」としてひとつの変数に入れたいとき、単純に連結演算子(||)だけを使うと余計な空白が入る。さらにもし連結する変数が多…

【SAS】SCAN関数を活用して「1-1」みたいな値を持つ文字変数をソートする

SAS

テストデータ作成 DATA test; INPUT id $; CARDS; 2-2 1-3 1-9 2-6 1-4 2-5 1-6 1-7 1-8 2-7 1-10 2-1 1-2 2-4 2-3 1-1 2-8 1-5 2-9 2-10 ; RUN; データセットの中身 この文字変数を 1-1 1-2 1-3 1-4 1-5 1-6 1-7 1-8 1-9 1-10 2-1 2-2 2-3 2-4 2-5 2-6 2-7 …

【SAS】アウトプットウィンドウへの出力を制御

SAS

PRINTプロシジャを実行するとアウトプットウィンドウにデータセットの中身が表示される。 PROC PRINT DATA=test; RUN;以上を実行するとアウトプットウィンドウに以下の内容が出力される でも、プロシジャによっては実行結果をアウトプットウィンドウにいちい…

【SAS】オブザベーション数をカウントする【SQLプロシジャ使用】

SAS

SQLプロシジャを使ってオブザベーション数をカウントするやり方 ※データは前回と同じものを使用 PROC SQL; CREATE TABLE count AS SELECT COUNT(*) AS cnt FROM test; QUIT; 作成されたデータセットの中身は前回と同じ categoryごとにカウントならgroup by P…

【SAS】オブザベーション数をカウントする【SQLプロシジャは使用しない】

SAS

データセットのオブザベーション(行数)をカウントするやり方 テストデータを作成 *変数category、valueを持つデータセット「test」を作成; DATA test; INPUT category value; CARDS; 2 257 1 172 3 169 3 208 2 408 2 400 1 315 1 156 3 30 1 262 1 484 3 …