这个问题建立在 Simon 和 James在此处提供的答案之上
该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 估计值,我可以将它加入到我的msadata
数据框中"Dmsa"
。我觉得这与迈克尔在这里join()
的回答非常相似,但在采用迈克尔的or建议之前,需要将列表元素分开merge()
。有任何想法吗?