【发布时间】:2016-02-11 03:57:01
【问题描述】:
我需要将 lm fit 对象存储在数据框中以进行进一步处理(这是必需的,因为我将在数据框中存储大约 200 多个回归)。我无法将 fit 对象存储在数据框中。以下代码产生错误消息:
x = runif(100)
y = 2*x+runif(100)
fit = lm(y ~x)
df = data.frame()
df = rbind(df, c(id="xx1", fitObj=fit))
Error in rbind(deparse.level, ...) :
invalid list argument: all variables should have the same length
我想获取 dplyr 的“do”调用返回的数据帧,示例如下:
> tacrSECOutput
Source: local data frame [24 x 5]
Groups: <by row>
sector control id1 fit count
1 Chemicals and Chemical Products S tSector <S3:lm> 2515
2 Construation and Real Estate S tSector <S3:lm> 985
请注意,这只是一个示例输出。我想以上述格式创建数据框(适合 lm 对象的列),以便我的其余代码可以在添加的模型上工作。
我做错了什么?非常感谢帮助。
【问题讨论】:
-
您应该使用
list而不是data.frame。 -
@Pascal,代码看起来如何,因为我将存储大量回归,然后进一步访问它们?
-
你可以看看 lapply...
-
查看broom 包,它用于将拟合转换为数据框。
-
检查
broom包。没有什么能比得上......链接:cran.r-project.org/web/packages/broom/vignettes/broom.html, varianceexplained.org/r/broom-intro