1

我正在尝试在 R 中生成时间虚拟变量。我正在分析季度面板数据(1990q1-2013q3)。如何生成 2007q1-2009q1 期间的时间虚拟变量,即 2007q1 dummy=1...

数据如图所示。资产排名是 id 变量。

在此处输入图像描述

问候和感谢!

4

3 回答 3

3

我会说model.matrix可能是你最好的选择。

date.f <- factor(dat$date)
dummies = model.matrix(~date.f)
于 2016-02-20T03:42:17.370 回答
1

我按照这个答案使用了更简单的方法。我想这里的时间序列和面板数据在应用方面没有区别。

print date
dummy <- as.numeric(date >= "2007 Q1" & date<="2008 Q4")
print (dummy)
于 2016-02-21T02:37:50.130 回答
1

@Demet 的答案很有用,但如果你有很多(例如 50 个句点),它会变得有点乏味。

@Amstell 的答案也很有用,它返回一个包含一个截距的矩阵。取决于您希望如何继续分析您必须取出的数据,这对您的后续分析最有用。

除了提出的答案之外,我还提出了以下代码,它只显示一个虚拟变量而不是一个巨大的矩阵。

dummies = table(1:length(date),as.factor(date))  

此外,重要的是要注意哪个时间段是解释模型的参考组。如果您有两个时间段,则可以通过应用以下代码更改参考组。

abs(Date(-1))
于 2016-09-08T07:55:37.307 回答