【发布时间】:2016-06-04 21:01:42
【问题描述】:
This tutorial 展示了如何将字符串替换为lm 模型调用。我想做同样的事情,但使用plm 进行面板回归。目标是创建一个参数组合网格,然后使用一个 apply 调用运行多个回归,每次都替换为适当的变量。
library(plm)
#make grid of parameters to loop over; select just the first row to reproduce the error
parameters <- expand.grid(dv="mpg", x1=c("cyl", "gear"), x2=c("hp", "wt"), stringsAsFactors = FALSE)
row <- parameters[1,]
#lm works
lm(substitute(y ~ x*z, list(y=as.name(row[[1]]), x=as.name(row[[2]]), z=as.name(row[[3]]))), data=mtcars)
#plm does not
plm(substitute(y ~ x*z, list(y=as.name(row[[1]]), x=as.name(row[[2]]), z=as.name(row[[3]]))), data=mtcars)
这会产生:
错误:继承(对象,“公式”)不正确
解决方案可能涉及将变量名称粘贴到 plm 中,而不是使用 substitute。或者我可以避免为此使用plm 吗?
【问题讨论】:
标签: r regression plm