手动生成交互术语

时间:2012-06-07 16:24:58

标签: r panel-data

我正在尝试使用plm估算具有特定时间趋势的固定效果面板,并遇到与other people相同的问题。我非常愿意使用链接的CrossValidated问题中描述的解决方法,但无法弄清楚如何生成必要的数据框列。

也就是说,我有一个

形式的数据框
data.frame(date=rep(1:5,times=3),id=rep(1:3,each=5))

并希望向此数据框添加名为id的每个date_idX的列,与date的所有观察值具有相同的id==X值否则为零。

我的问题当然也值得赞赏。

1 个答案:

答案 0 :(得分:1)

> dfrm <- data.frame(date=rep(1:5,times=3),id=rep(1:3,each=5))
> 
> X <-3;  dfrm$time_idX <- dfrm$date*(dfrm$id==X)
> dfrm
   date id time_idX
1     1  1        0
2     2  1        0
3     3  1        0
4     4  1        0
5     5  1        0
6     1  2        0
7     2  2        0
8     3  2        0
9     4  2        0
10    5  2        0
11    1  3        1
12    2  3        2
13    3  3        3
14    4  3        4
15    5  3        5

我怀疑你真正想要的是在回归公式中做到这一点。为此,需要I()功能。这是伪代码:

  regfun( form = yield ~ I(date*(id==X) ), data=dfrm)

我不保证这将成为解决使用plm问题的正确方法,但是这种方法应该适用于普通的回归。您应该编辑您的问题以包含正确的测试用例。