IF NOBS SAS

【SAS】データセットのオブザベーション数で処理を分岐させる方法【IF】【NOBS】

投稿日:

今回は、データセットのオブザベーション数により、処理を分岐させる方法について解説していきたいと思います。

(参考:【SAS】データセットの有無で処理を分岐させる方法【%IF】【EXIST】 | ビジネスイッチ (how-to-business.com)


/* 1オブザベーション*/
data data1;
 id1 = "1111";
run;

data data2; set data1;
  if id1 = "1111" then output;
run;

data data3;
  if NOBS = 0 then do;
    id1 = "blank";
    output;
  end;
  
set data2 nobs=NOBS;
  output;
run;
  • nobs=NOBSにより、オブザベーション数「1」をNOBSに格納。
  • NOBS=1なので、何もせずid1を出力。

/* 0オブザベーション*/
data data1;
 id1 = "1111";
run;

data data2; set data1;
  if id1 = "2222" then output;
run;

data data3;
  if NOBS = 0 then do;
    id1 = "blank";
    output;
  end;
  
set data2 nobs=NOBS;
  output;
run;
  • nobs=NOBSにより、オブザベーション数「0」をNOBSに格納。
  • NOBS=0なので、id1=”blank”

/* 空の1オブザベーション */
data data2;
  attrib id1 length=$5.; 
run;

data data3;
  if NOBS = 0 then do;
    id1 = "blank";
    output;
  end;
  
set data2 nobs=NOBS;
  output;
run;
  • attribを使うと空の1オブザベーションとなってしまう為、注意。
  • nobs=NOBSにより、オブザベーション数「1」をNOBSに格納。
  • NOBS=1なので、何もせずid1を出力。

-IF, NOBS, SAS

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

関連記事

【SAS】SAS日時値からSAS日付値に変換する方法【DATEPART】【DATETIME】【DATE】

今回はDATETIMEでSAS日時値を取得した後、SAS日付値に変換する方法について解説していきます。 (つまり、DATETIMEの値からDATEの値に変換する) (DATETIME:【SAS】DAT …

【SAS】SASで良く使うテクニック。その6 「名前ボックス」~指定したセルに飛びたい時~【Excel】

今回はSASで良く使うテクニックということで、指定したセルに飛びたい時は「名前ボックス」が役に立つ理由を解説していきます。 以前の記事で「Ctrl+R」や「Ctrl+D」を用いた例を紹介してきました。 …

【SAS】”nは本来使用できない文字を使用可能にする。

今回は”nについて解説します。(参考:Solved: what the ”  ‘n ” means? – SAS Support Commu …

【SAS】SASで良く使うテクニック。その3 「Ctrl+D」~データセットのオブザベーション数が多いとき~【Excel】

今回はSASで良く使うテクニックということで、データセットのオブザベーション数(行数)が多いときは「Ctrl+D」が役に立つ理由を解説していきます。 (参考:【SAS】SASで良く使うテクニック。その …

【SAS】IFステートメントは処理を分岐できる。その2~ELSE IF、ELSE~

前回はIF文のオーソドックスな構文を解説しましたが、今回はELSE IFとELSEを使った構文についても解説していきます。 (参考:【SAS】IFステートメントは処理を分岐できる。その1 | ビジネス …