私はStataを初めて使用しますが、日付を含む文字列変数を日付形式に変更するにはどうすればよいのでしょうか。
変数のデータは次のようになります。
yyyy-mm-dd
後でgen var = date()
を使用するために、Stataがフォーマットを認識できるように、最初にダッシュを削除する必要がありますか?
ご協力ありがとうございました。
Stata date
関数は、区切り文字の削除に優れています。 「日付関数」セクションの help datetime_translation を参照してください。
日付がv1
でyyyy-mm-dd
の形式の場合、次のコマンドを指定できます。
generate v2 = date(v1, "YMD")
format %td v2
YMD
はmaskと呼ばれ、日付の一部が指定されている順序をStataに通知します。 2行目では、変数にStataの毎日の日付形式が割り当てられます。つまり、データでその変数を見ると、人間が読める形式で表示されます。ただし、日付は1960年1月1日からの日数として保存されます。
date
関数を試す最良の方法は、display
コマンドを使用することです。 1行目には、1960年1月1日からの日数を表す整数が表示されます。2行目には、人間が読める形式で日付が表示されます。
display date("2013-08-14", "YMD")
display %td date("2013-08-14", "YMD")
here を見て、Stataでデータに変換する方法を確認するか、次のようにします。
tostring datedx, replace
generate str4 dxyr1= substr(datedx,1,4)
generate str2 dxmo1 = substr(datedx,6,7)
generate str2 dxda1 = substr(datedx,9,10)
destring dx*, replace
gen datedx1 = mdy(dxmo1, dxda1, dxyr1)