在R(面板数据)

时间:2016-02-20 03:25:16

标签: r panel-data

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

数据如图所示。资产等级是id变量。

enter image description here

问候&谢谢!

3 个答案:

答案 0 :(得分:3)

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

date.f <- factor(dat$date)
dummies = model.matrix(~date.f)

答案 1 :(得分:1)

我在this answer之后使用了更简单的方法。我想这里的时间序列和面板数据在应用方面没有区别。

print date
dummy <- as.numeric(date >= "2007 Q1" & date<="2008 Q4")
print (dummy)

答案 2 :(得分:1)

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

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

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

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

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

abs(Date(-1))