BookmarkSubscribeRSS Feed

複数の変数に欠損値をセット(初期化)する

Started ‎03-13-2018 by
Modified ‎04-19-2018 by
Views 460

質問

複数の変数に欠損値をセットするときに、ひとつずつセットしたり、DOループを使用したりしていますが、簡略化する方法はありますか。

回答

SAS9以降では、CALL MISSINGルーチンを使用して、複数の変数に欠損値をセットすることができます。
CALL MISSINGルーチンの書式は、以下のとおりです。

 

  CALL MISSING(変数名1<,変数名2, ...>);

 

 

引数には文字変数と数値変数を同時に指定できます。数値変数には欠損値、文字変数にはスペースがセットされます。
「OF 変数名1 - 変数名n」という簡略表記もできます。

 

 

使用例

 

DATA sample;                    /* サンプルデータセット作成 */
 INPUT id $ var1-var3;
CARDS;
A001 10 0.1 100
A001 20 0.1 100
A002 20 0.2 200
A002 30 0.1 100
A003 40 0.3 300
A003 15 0.3 300
;
RUN;

DATA sum(DROP=var1-var3 i);
  SET sample;
  BY id;
  RETAIN s_var1-s_var3 0;
  ARRAY s_var(3);
  ARRAY var_(3) var1-var3;
  SET sample;
  BY id;
  DO i=1 TO DIM(s_var);
    s_var(i) + var_(i);
  END;
  IF last.id THEN DO;
    OUTPUT;
    CALL MISSING(OF s_var1-s_var3); /* CALL MISSINGルーチン */
  END;
RUN;

 

 

 

Version history
Last update:
‎04-19-2018 12:47 AM
Updated by:
Contributors

SAS INNOVATE 2024

Innovate_SAS_Blue.png

Registration is open! SAS is returning to Vegas for an AI and analytics experience like no other! Whether you're an executive, manager, end user or SAS partner, SAS Innovate is designed for everyone on your team. Register for just $495 by 12/31/2023.

If you are interested in speaking, there is still time to submit a session idea. More details are posted on the website. 

Register now!

Article Labels
Article Tags

SAS Support Communitiesのユーザーガイドライン


コミュニティの基本的なガイドラインについてご説明します。まずは、こちらをご参照ください。

詳細を読む

 

SAS Support CommunitiesのFAQ


SAS Support CommunitiesのFAQはヘルプに記載されています。参照方法は、こちらからご確認ください。

詳細を読む

 

質問や意見の投稿と返信方法について


Japan SAS Discussionページに質問や意見(メッセージ)を投稿/返信する方法を簡単にご説明します。

詳細を読む