ややこしい日付の入力は勘弁してもらいたい

119 Views

April 03, 24

スライド概要

[第5回大阪sas勉強会]淺井 友紀

profile-image

SAS言語を中心として,解析業務担当者・プログラマなのコミュニティを活性化したいです

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

ややこしい日付の入力は 勘弁してもらいたい 淺井

2.

(個人的に)よく見る日付の入力 ANUM = “28may2008d”d ; AHYP = “2008-5-28” ; ASLA = “2008/5/28” ; →一番上はsas日付として格納される →下二つはinputでyymmdd10.を指定すれば sas日付に変換できる

3.

今回の場合 ASPA = "28 may 2008" ;

4.

今回の場合 ASPA = "28 may 2008" ; • スペースは困る(手打ちでもしているのか?) • 28may2008形式で書くなら末尾にdつけてsas日付に してくれ

5.

sas日付に変換 data HOGE ; ASPA = "28 may 2008" ; BSPA = input( compress(ASPA , " ") , anydtdte10.) ; format BSPA yymmdd10. ; putlog BSPA ; run ; • compressでスペースを取り除く • 困ったらanydtdte10.フォーマット当てとく

6.

sas日付に変換 data HOGE ; ASPA = "28 may 2008" ; BSPA = input( compress(ASPA , " ") , date10.) ; format BSPA yymmdd10. ; putlog BSPA ; run ; • date10.でも同じことが出来る – こちらのほうが無難

7.

anydtdteフォーマット • 困ったら使うformat.大体読み込める • 年月しかない場合は月初として解釈する • yyyymmdd形式の日付を読み込めない – エラーなく実行されるが意図した日付にならない – yymmdd形式なら読み込める 癖のあるフォーマットなのであまり使うことをお勧め しません.yyyymmdd形式を正しく読み込めると話 が変わってくるんですが.

8.

実行例 data HOGE ; length A $20 ; A = “08-05-12” ; output ; /*2008年5月12日で読み込める*/ A = “2008-05-12” ; output ; /*読み込むと2008年5月01日になってしまう*/ A = “2008-05”; output ; /*日付が無いので5月1日扱い*/ A = “may2008” ; output ; /*日付が無いので5月1日扱い*/ A = “2008q3” ; output ; /*四半期表示もok,3qなので7月1日*/ run ; data _null_ ; set HOGE ; B = input(A , anydtdte.) ; format B yymmdd10. ; putlog B ; run ;

9.

anydtdteはポンコツではないか • ポンコツです – 日付が欠損の場合で,月初で補完が決まってる 場合はまだ使える • “2008-05”の時は年月は正しく読み込めて,日が月初 で補完されるため • 補完ルールが月初固定なのでポンコツに変わりない ですが... – 柔軟に対応は出来るので,if文で調節してあげれ ば輝く時があります.出力の確認は必須ですが.

10.

おしらせ • メールでの連絡はそろそろ限界だと思っています. • 連絡用ツールをいろいろ考えたのですが,google groupsはどうでしょうか. – グーグルのやってる掲示板みたいなもんです.資料共有 がgoogle driveですし合わせました. – 今ならほかのやつでも大丈夫です.SlackとかMS teamsと か.これ良いよ,とかあれば是非教えてください. – ただ書き込みのたびに通知がメールで飛ぶのが面倒 • とりあえず今日の参加者の招待に使うので私 (tasai.anko@gmail.com)までメールください.