BookmarkSubscribeRSS Feed

データセット作成時に変数の並び順を指定する方法

Started ‎03-05-2018 by
Modified ‎04-19-2018 by
Views 1,421

質問

SASデータセットの変数の並び順を制御する方法はありますか。

回答

SASではプログラム中で変数を宣言するタイミングが早い順番に、変数の並び順が決定されます。この規則を応用することで、データセット内の変数の順番を任意に指定できます。もし、同じ変数に対する宣言が複数ある場合には、より早い宣言が有効になります。

 

変数を宣言する定義のうち、代表的な2つのステートメントをご紹介します。

 

■ LENGTHステートメントを使用する方法

 変数の定義順序を指定するために、変数の属性(数値・文字)、および長さを定義するLENGTHステートメントを利用します。

                                      /* LENGTH ステートメントの例 */
   DATA test_len;
    LENGTH weight 8 height 8 age 8 sex $ 4 name $ 12;
     SET sashelp.class;
   RUN;

 

■ FORMATステートメントを使用する方法
変数の定義順序を指定するために、変数の出力形式(フォーマット)を定義するFORMATステートメントを利用します。

                                      /* FORMAT ステートメントの例 */

   DATA test_fmt;
     FORMAT weight height age sex name;
     SET sashelp.class;
   RUN;

 

 

ただし、SETステートメントには変数を宣言することと同等の機能があるので、上記の各ステートメントは、SETステートメントよりも先に指定してください。

 

Comments

お世話になります。

 

formatステートメントを出力形式を変更しつつ、変数の順序を変更する際にはsetステートメントの前にformatステートメントをおいて、すべての変数を並べつつすべての出力形式を指定しないといけない、ということになりますでしょうか?

それだと変数が多く、出力形式を指定したい変数が2~3個のデータセットだと面倒なので、一部の変数の出力形式を指定するデータステップと変数の順序を指定するデータステップの一つに分けるほうが面倒ではないということでしょうか?

 

よろしくお願いいたします。

FORMATステートメントを複数記述してもいいと思います。最後に定義したものが利用されます。

 

data test_fmt;
format weight height age sex name;
format height dollar.;
set sashelp.class;
run;
Version history
Last update:
‎04-19-2018 01:08 AM
Updated by:
Contributors

SAS Innovate 2025: Call for Content

Are you ready for the spotlight? We're accepting content ideas for SAS Innovate 2025 to be held May 6-9 in Orlando, FL. The call is open until September 25. Read more here about why you should contribute and what is in it for you!

Submit your idea!

Article Labels
Article Tags

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


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

詳細を読む

 

SAS Support CommunitiesのFAQ


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

詳細を読む

 

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


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

詳細を読む