0

我希望使用 plyr 函数有效地组合我的回归。我有数据框,其中包含多年的月度数据格式yDDDD(所以y2014y2013等)

现在,我为其中一个 dfs 提供了以下代码,y2014. 根据每年的需要,我按月运行回归。

modelsm2= by(y2014,y2014$Date,function(x) lm(y~,data=x))
summarym2=lapply(modelsm2,summary)
coefficientsm2=lapply(modelsm2,coef)
coefsm2v2=ldply(modelsm2,coef) #to get the coefficients into an exportable df

我有几件事想做,非常感谢您的帮助!

A.r^2为每个模型提取 。我知道对于一个模型,你可以做得到summary(model)$r.squared它,但我的构造没有运气。

B. 在循环型结构中应用相同的方法,让模型为我的所有数据帧运行(y2013和向后)

C. 将摘要转换为易于导出(到 Excel)的格式 --> 该ldply函数不适用于摘要。

再次感谢。

4

1 回答 1

0

A. 您需要r.squared从摘要中提取值:

lapply(summarym2,"[[","r.squared")

B. 将所有数据放入一个列表中,并lapply在其周围放置另一个,例如:

lapply(list(y2014,y2013,y2012), function(dat)
                                   by(dat,dat$Date, function(x) lm(y~.,data=x))
      )

然后,您将获得一个列表列表,例如,要提取摘要,您将使用:

lapply(lmlist,lapply,summary)

C.summary返回一个相当复杂的数据结构,不能强制转换为 data.frame。您看到的结果是它的print方法的结果。您可以使用capture.output来获取可用于写入文件的输出的每一行的字符向量。

于 2014-07-02T16:26:15.150 回答