Rで時間ダミー変数を生成しようとしています。四半期ごとのパネルデータ(1990q1-2013q3)を分析しています。2007q1 から 2009q1 の期間、つまり 2007q1 ダミー = 1 の時間ダミー変数を生成するにはどうすればよいですか?
データは写真のようになります。資産ランクは id 変数です。
よろしく&ありがとう!
Rで時間ダミー変数を生成しようとしています。四半期ごとのパネルデータ(1990q1-2013q3)を分析しています。2007q1 から 2009q1 の期間、つまり 2007q1 ダミー = 1 の時間ダミー変数を生成するにはどうすればよいですか?
データは写真のようになります。資産ランクは id 変数です。
よろしく&ありがとう!
model.matrixおそらくあなたの最善の策だと思います。
date.f <- factor(dat$date)
dummies = model.matrix(~date.f)
this answerに従って、より簡単な方法を使用しました。ここは時系列データもパネルデータも用途的には大差ないと思います。
print date
dummy <- as.numeric(date >= "2007 Q1" & date<="2008 Q4")
print (dummy)
@Demet の回答は便利ですが、ピリオドが多い場合 (たとえば 50 ピリオド) はちょっと面倒です。
@Amstell の答えも役に立ちます。1 の切片を含む行列を返します。どのようにデータを分析し続けたいかによって、フォローアップ分析に最も役立つものを取り出す必要があります。
提案された回答に加えて、巨大な行列の代わりに単一のダミー変数を表示する次のコードを提案します。
dummies = table(1:length(date),as.factor(date))
さらに、どの期間がモデルを解釈するための参照グループであるかに注意することが重要です。2 つの期間がある場合は、次のコードを適用して参照グループを変更できます。
abs(Date(-1))