BookmarkSubscribeRSS Feed

SASデータセットに関する情報(OBS数、変数の数等)を取得する

Started ‎03-01-2018 by
Modified ‎04-19-2018 by
Views 4,841

質問

特定のSASデータセットのオブザベーション数や変数の数を、プログラム中で取得したいのですが、よい方法はありますか。

回答

いくつかの方法が考えられます。


まず、オブザベーション数を取得するだけなら、SETステートメントのNOBS=オプションを使用する方法があります。

また、CONTENTSプロシジャでOUT=オプションを使用すると、オブザベーション数だけでなく、SASデータセットに関する非常に多くの情報を任意のSASデータセットに出力することができます。

 

proc contents data=sashelp.class out=contout;
run;

proc print data=contout;
run;

 

 

またマクロを利用すれば、上記で作成したSASデータセットから、オブザベーション数と 変数の数を取得するまでを自動的に行えます。
以下にその方法を示します。

 

[マクロ定義] 

  %macro varcnt(data=,mvar=);
    %global &mvar;
    proc contents data=&data
                  out=_tmpxx_ noprint;
    run;
    data _null_ ;
      set _tmpxx_ nobs=cnt;
      call symput("&mvar",left(put(cnt,8.)));
      stop;
    run;
  %mend;
  %macro obscnt(data=,mvar=);
    %global &mvar;
    data _null_;
      set &data nobs=cnt;
      call symput("&mvar",left(put(cnt,8.)));
      stop;
    run;
  %mend;

 

 

[使用例]

  %varcnt(data=sashelp.class,mvar=test);
  %put &test;
  %obscnt(data=sashelp.class,mvar=test);
  %put &test;

 

 

 

Version history
Last update:
‎04-19-2018 01:02 AM
Updated by:

sas-innovate-2024.png

Don't miss out on SAS Innovate - Register now for the FREE Livestream!

Can't make it to Vegas? No problem! Watch our general sessions LIVE or on-demand starting April 17th. Hear from SAS execs, best-selling author Adam Grant, Hot Ones host Sean Evans, top tech journalist Kara Swisher, AI expert Cassie Kozyrkov, and the mind-blowing dance crew iLuminate! Plus, get access to over 20 breakout sessions.

 

Register now!

Article Labels
Article Tags

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


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

詳細を読む

 

SAS Support CommunitiesのFAQ


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

詳細を読む

 

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


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

詳細を読む