BookmarkSubscribeRSS Feed

年齢の計算方法

Started ‎03-13-2018 by
Modified ‎04-19-2018 by
Views 2,170

質問

誕生日からその人の年齢を求めたいのですが、どのようにしたら良いでしょうか。
Microsoft Excelでは、「DATADIF」関数を使用し、開始日と終了日と単位を指定すると年齢を表示できますが、SAS関数に同様の機能がありますか。 探したのですが見当たりませんので教えてください。

回答

SASには、SAS日付値を扱う関数が用意されています。
(例: TODAY, YEAR, MONTH, DAY, WEEKDAY, MDY, INTCK, INTNX)
これらの関数をご使用になると日付の計算をより簡単に行えます。

(SAS日付値とは1960年1月1日から数えた累積日数です。)

年齢の計算には、INTCK関数をご利用になると便利です。
INTCK関数は、二つのSAS日付値の間に何回、年(又は月)を越すかを求めるものです。

下記の使用例をご参照ください。
(実際には一日しか間隔はございませんが、1年と表示されます。)

 

<プログラム例>

data _null_;
   year=intck('YEAR', '31Dec1999'd, '1Jan2000'd);
   put year=;
run;

<結果>

YEAR=1
NOTE: DATA statement は 0.13 秒を使用しました.

上の例では数え年が求められます。
下記の例は満年齢を求めるプログラムです。ご参考になさってください。

 

data _null_;

   /* 現在の日付 */
   current='7SEP2000'd;

   /* 誕生日 */
   birth='22MAY1973'd;

   /* 数え年を求めます */
   age=intck('YEAR', birth, current);

   /* 今年の誕生日がまだ来ていない場合は、数え年から1を引きます */
   if (month(current) < month(birth)) then
      age=age - 1;
   else if (month(current) = month(birth)) and
           day(current) < day(birth) then
           age=age - 1;

   /* 結果の表示 */
   put age=;
run;

 参考:

SAS® 9.4関数とCALLルーチン リファレンス, 第4版
http://support.sas.com/documentation/cdl_alternate/ja/lefunctionsref/67960/HTML/default/p1md4mx2crzf...

Version history
Last update:
‎04-19-2018 09:33 PM
Updated by:

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

Article Labels
Article Tags

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


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

詳細を読む

 

SAS Support CommunitiesのFAQ


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

詳細を読む

 

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


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

詳細を読む