回归循环按类别

时间:2015-09-10 14:02:24

标签: r for-loop foreach linear-regression

我有一个包含多个引擎的数据集,我想创建一个for循环函数来为每个引擎运行线性回归并提取每个回归的系数。因此,我希望第一次回归在六周内使用engine = Google运行,然后第二次使用engine = Bing等运行六周。数据集的示例如下所示:

Engine  Wk   Imp   Clicks  lnSpend  Actions CPA
google  1   100302  15791   10998    31     354.79
google  2   23893   4734    2866     16     179.18
google  3   318       16    37.83    11     3.44
google  4   7992    1980    1704.81  27     63.14
google  5   13206   3292    2732.13  26     105.08
google  6   10888   2966    2293.86  22     104.27
bing    1   23536   1808    1028.95  3      342.98
bing    2   86873   7196    2740.28  14     195.73
bing    3   54654   4398    1786.96  13     137.46
bing    4   45553   3353    1860.47  13     143.11
bing    5   41254   3322    1811.80  13     139.37
bing    6   38305   3117    1501.01  19     79.00

回归方程为actions~ spend,这在所有引擎中保持不变。

这是我到目前为止的代码:

for(i in unique(mydata$engine)) 
  {
  reg<- append(reg, lm(mydata$Actions~ mydata$lnspend, data=mydata[mydata$engine== i,]))
}
summary(reg)

然而,当我这样做时,回归运行在将所有引擎组合在一起的完整数据集上。

我也尝试过使用by功能。我拥有的代码是

reg<- by(mydata$engine, function(mydata) lm(Actions~ lnspend, data=mydata))
sapply(reg, coef)

当我运行时,我收到以下错误:

  

“unique.default(x,nmax = nmax)中的错误”

知道怎么解决吗?

0 个答案:

没有答案