【发布时间】:2013-08-07 18:46:32
【问题描述】:
这个问题建立在 Simon 和 James 提供的答案 here
dlply 函数运行良好,可以在我的数据子集中给出 Y 估计值。现在,我的挑战是将这些 Y 估计值和残差返回到原始数据框中,以计算拟合优度统计数据并进行进一步分析。
我能够使用 cbind 将 dlply 输出列表转换为行向量,但这并不完全有效,因为结果是(抱歉降价不佳)。
model <- function(df){ glm(Y~D+O+A+log(M), family=poisson(link="log"), data=df)}
Modrpt <- ddply(msadata, "Dmsa", function(x)coef(model(x)))
Modest <- cbind(dlply(msadata, "Dmsa", function(x) fitted.values(model(x))))
Subset name | Y_Estimates
-------------------------
Dmsa 1 | c(4353.234, 234.34,...
Dmsa 2 | c(998.234, 2543.55,...
这并不能真正回复邮件,因为我需要将单个 Y 估计值(在 Modest 数据框的 Y_estimates 列中用逗号分隔)放入我的 msadata 数据框。
理想情况下,我知道这是不正确的,但我会在这里举个例子,我想做这样的事情:
msadata$Y_est <- cbind(dlply(msadata, "Dmsa", function(x)fitted.values(model(x))))
如果我可以将列表分解为单独的 Y 估计值,我可以通过"Dmsa" 将其加入我的msadata 数据框。我觉得这与 Michael 的回答 here 非常相似,但是在采用 Michael 的 join() 或 merge() 的建议之前,需要将列表元素分开。有什么想法吗?
【问题讨论】: