web-dev-qa-db-ja.com

Stata:文字列変数を日付に変更する方法は?

私はStataを初めて使用しますが、日付を含む文字列変数を日付形式に変更するにはどうすればよいのでしょうか。

変数のデータは次のようになります。

yyyy-mm-dd

後でgen var = date()を使用するために、Stataがフォーマットを認識できるように、最初にダッシュを削除する必要がありますか?

ご協力ありがとうございました。

7
roland

Stata date関数は、区切り文字の削除に優れています。 「日付関数」セクションの help datetime_translation を参照してください。

日付がv1yyyy-mm-ddの形式の場合、次のコマンドを指定できます。

generate v2 = date(v1, "YMD")
format %td v2

YMDmaskと呼ばれ、日付の一部が指定されている順序を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")
9
sechilds

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)
1