投稿

ラベル(SAS日時)が付いた投稿を表示しています

proc format - SAS日時、SAS日付、SAS時間に対して、自分で出力方式を作成する

すごく久しぶりに、proc format で出力方式を作ったら、完全にど忘れして同じ失敗を繰り返してしまったので、忘れないために記事書きます。 SAS日時、SAS日付、SAS時間の出力方式って、いっぱいありますけど、たくさんある出力方式を探すの大変だし、探してみたらほしいものが無かったなんてことがまれによくあります。 そんなときに使うのが、proc format です。出力方式を自分で作ることができます。 数値や文字に対しても、出力方式を作ることもできますが、今回は、SAS日時、SAS日付、SAS時間について、出力方式を作ってみたいと思います。 proc format ; /* YYYY-MM-DD HH:MI:SS 形式 */ picture YMDHMS_A other='%Y-%0m-%0D %0H:%0M:%0S' (datatype=datetime) ; /* %a で曜日も入れられます。local によって結果は異なります */ picture YMDHMS_B other='%Y%0m%0D(%a) %0H%0M%0S' (datatype=datetime) ; /* 日本語も入れることができます */ picture YMDHMS_C other='%Y年%0m月%0D日(%a曜日) %0H時%0M分%0S秒' (datatype=datetime) ; /* ゼロを無くすことで、セロ埋めされずに出力されます */ picture YMDHMS_D other='%Y-%m-%D %H:%M:%S.%s' (datatype=datetime) ; run ; /* 作成した出力方式を使ってみる */ data _null_ ; DATM = datetime() ; putlog DATM= YMDHMS_A19. ; putlog DATM= YMDHMS_B20. ; putlog DATM= YMDHMS_C44. ; putlog DATM= YMDHMS_D24. ; run ; picture ステートメントの直後に、好きな出力方式名を指定します。 値に応じて、出力方式を変...

数値定数、SAS日付定数、SAS時間定数、SAS日時定数の表現方法

イメージ
数値定数、SAS日付定数、SAS時間定数、SAS日時定数の色々な書き方のご紹介です。 数値定数 title "数値定数" ; data TEST_NUM ; N = 1234 ; output ; N = -123 ; output ; N = +123 ; output ; N = 0010 ; output ; N = 0.123 ; output ; N = 1E10 ; output ; /* 指数表記 : 1 × 10の10乗 = 10000000000 */ N = 2.1E2 ; output ; /* 指数表記 : 2.1 × 10の 2乗 = 210 */ N = 1E-3 ; output ; /* 指数表記 : 2.1 × 10の-3乗 = 0.001 */ N = 2.5E-2 ; output ; /* 指数表記 : 2.5 × 10の-2乗 = 0.025 */ N = 0x ; output ; /* 16進数 : 10進数 0 */ N = 010x ; output ; /* 16進数 : 10進数 16 */ N = 0FFx ; output ; /* 16進数 : 10進数 255 */ N = 0FFFFx ; output ; /* 16進数 : 10進数 65535 */ N = . ; output ; /* 欠損値 */ N = .A ; output ; /* 特殊欠損値 A */ N = ._ ; output ; /* 特殊欠損値 _ */ run ; proc print data=TEST_NUM ; format N comma22.4 ; run ; SAS日付定数 title "SAS日付定数" ; data TEST_DATE ; DATE = '01JAN2015'd ; output ; /* 2015/01/01 */ DATE = '31AUG2015'd...