0

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

也就是说,我有一个表格的数据框

data.frame(date=rep(1:5,times=3),id=rep(1:3,each=5))

并希望在此数据框中为每个id名为的列添加一个列,其值与所有观测date_idX值相同,否则为零。dateid==X

当然,我的问题的任何更优雅的解决方案也将不胜感激。

4

1 回答 1

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 问题的正确解决方案,但它是一种适用于普通回归的方法。您应该编辑您的问题以包含适当的测试用例。

于 2012-06-07T17:09:41.800 回答