我正在尝试在R中生成一个时间虚拟变量。我正在分析季度面板数据(1990q1-2013q3)。如何为2007q1-2009q1期间生成时间虚拟变量,即2007q1 dummy = 1 ...
数据如图所示。资产等级是id变量。
问候&谢谢!
答案 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))