2014年9月18日木曜日

超初心者のSTATAメモ<日付・時間の扱い>

いま、データセットが、
変数名 time_stamp
中身の例 2008/10/31 23:59

となっているとき
この
2008/10/31 23:59
は、HRFsという形のフォーマット。人が読む用の。

同じものを表すSTATA用のフォーマットSIFがあり、

display %20.0gc clock("2008/10/31 23:59","YMD hm")

とすると、対応するSIFの値が表示される。
この場合は
1,541,116,740,000

さて、表示するだけでなく、SIFの形の新しい変数(eventtimeとする)を作りたい場合

gen double eventtime = clock(time_stamp, "YMDhm")

でいける。
ここで、double型じゃないといけないので、genのすぐ後にdoubleって入れた。
YMDhmは、Year~minuteまで。secondも入ってるならsまで入れる。

ここで新しくできた変数は、年から分まで入ってるけど、これを年・月・日だけにしたい場合は、新しい変数eventdateを用いて、

gen eventdate = dofc(eventtime)

とすると、年・月・日だけののSIFの値が入った列が作成される。
これをSIFではなくHRFにしたい場合は、

format eventdate %td

で、18jun2009のようなHRFの表示に代わる。
ここで出てきた
dofc()や%tdなどについては、

http://www.stata.com/manuals13/ddatetime.pdf

の Displaying SIFs in HRF と SIF-to-SIF conversion に載っている。


超初心者のSTATAメモ<if文の中身>

&をやりたいときは&
orをやりたいときは |
でつなぐ。