R 用列表预测-重新访问
在中,@JD Long要求解决我经常遇到的一个问题;通常情况下,当模型拟合并绘制图时,会出现这种情况。JD Long在@Joshua Ulrich的答案中编辑的解决方案非常优雅,除了所需的R 用列表预测-重新访问,r,plyr,lm,dplyr,R,Plyr,Lm,Dplyr,在中,@JD Long要求解决我经常遇到的一个问题;通常情况下,当模型拟合并绘制图时,会出现这种情况。JD Long在@Joshua Ulrich的答案中编辑的解决方案非常优雅,除了所需的粘贴 @ddplyempire的负责人哈德利(hadley)发布了一个带有mdply的解决方案,我觉得这个解决方案令人费解,也很不优雅 现在,dplyr(可能还有tidyr)正在接管:有没有更直观的方法来处理这个常见的任务 有关数据和示例代码,请参见上面引用的JD Long示例。使用引用的示例中的数据,您可以对
粘贴
@ddply
empire的负责人哈德利(hadley)发布了一个带有mdply
的解决方案,我觉得这个解决方案令人费解,也很不优雅
现在,dplyr
(可能还有tidyr
)正在接管:有没有更直观的方法来处理这个常见的任务
有关数据和示例代码,请参见上面引用的JD Long示例。使用引用的示例中的数据,您可以对dplyr使用以下方法
library(dplyr)
newData %>%
group_by(state) %>%
mutate(pred = predict(modelList[[as.character(state[1])]],
as.data.frame(year)))
但是,我不确定这个解决方案是否比现有解决方案更优雅。你考虑过<代码> NLME::LMLISTAB/CODE >吗?它在公式中使用了一个分组变量,我认为这是一个非常直观的界面。+1@baptiste。对于那些感兴趣的人来说,如何简单的lmList()
和predict.lmList()
完成这项工作。是的,我是一个很重的nlme用户,predict.lmList是后台的示例应用程序。但在Joshua的问题中,lm只是一个例子,而我正在寻找的是对其他拟合的推广,例如stan/mcmc。我认为目前不可能用dplyr优雅地实现这一点。我想象它的工作方式是使用一些tidyr动词来获得一个数据框,其中一列是一列数据框(形成预测网格的数据),然后将其与包含模型的数据框连接起来,然后do(predict(.$model,.$data))
。如果没有更好的答案,这将作为一个可接受的答案。在我看来,这两种模式都表明解决方案并不十分优雅;字符(状态[1])(或原始版本中的粘贴)有一点代码味道。