我正在尝试使用plm
估算具有特定时间趋势的固定效果面板,并遇到与other people相同的问题。我非常愿意使用链接的CrossValidated问题中描述的解决方法,但无法弄清楚如何生成必要的数据框列。
也就是说,我有一个
形式的数据框data.frame(date=rep(1:5,times=3),id=rep(1:3,each=5))
并希望向此数据框添加名为id
的每个date_idX
的列,与date
的所有观察值具有相同的id==X
值否则为零。
我的问题当然也值得赞赏。
答案 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问题的正确方法,但是这种方法应该适用于普通的回归。您应该编辑您的问题以包含正确的测试用例。