在固定效果回归中循环显示列名称

时间:2014-04-15 13:02:08

标签: r plm

我正在尝试编码固定效果回归,但我有很多虚拟变量。基本上,我的等式的RHS有184个变量。我没有写出来,而是试图创建一个将遍历每一列的循环(我已用一个数字命名每个列)。

这是我到目前为止的代码,但是粘贴不起作用。我可能完全不使用粘贴,但我不确定如何处理这个问题。但是,我收到了一个错误(见下文)。

FE.model <- plm(avg.kw ~ 0 + (for (i in 41:87) {
                    paste("hour.dummy",i,sep="") + paste("dummy.CDH",i,sep="")
                   + paste("dummy.MA",i,sep="") + paste("DR.variable",i,sep="")
              }),
              data = data.reg,
              index=c('Site.ID','date.hour'),
              model='within',
              effect='individual') 
summary(FE.model)

作为列名的示例,当i = 41时,名称应为&#34; hour.dummy41&#34; &#34; dummy.CDH41&#34;等

我收到以下错误:

Error in paste("hour.dummy", i, sep = "") + paste("dummy.CDH", i, sep = "") : non-numeric argument to binary operator

所以我不确定这里的粘贴功能是否合适,或者它是否是循环。我似乎找不到在R中轻松遍历列名的方法。

非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

暂时无法担心如何使用如此多的术语来拟合模型,您可能希望生成一个字符串,然后将其转换为公式:

#create a data.frame where rows are the parts of the variable names, then collapse it
rhs <- do.call(paste, c(as.list(expand.grid(c("hour.dummy","dummy.CDH"), 41:87)), sep=".", collapse=" + "))
fml <- as.formula(sprintf ("avg.kw ~ %s"), rhs))
FE.model <-pml(flm, ...

我只在第二行输入了两个“假”,但你应该明白这个想法