我仍在 R 的学习曲线中(并且在这个论坛中是新的),并且一直在尝试循环一个 gam 模型,在该模型中我试图评估对环境预测变量的不同响应(因变量 - 在这种情况下是鱼类)。所以基本上我想在一个循环中重新创建以下内容:
g1<-gam(var1~s(x1)+s(x2))
g2<-gam(var2~s(x1)+s(x2))
g3<-gam(var2~s(x1)+s(x2))
我的数据框由单独列中每个物种的丰度组成,然后是单独列中的环境预测因子。我遵循了这个论坛中的一些建议,使用 melt 和 dlply 按物种迭代 gam 模型。我使用了以下代码:
melt.x<-melt(FullMatrix, id=c("PLAND_50","FragIndex_50"),measure.var=c("CALLI_SPP","CARIDEA", "EUC_ARG","FAR_DUO","HAE_SCI","LAG_RHO","LUC_PAR","LUT_GRI","OPS_BET","SPH_BAR","SYN_SPP"), variable.name="Nekton", value.name="Abundance")
.上面的代码创建了一个data.frame,每个物种观察一行
attach(melt.x)
gams_50<-dlply(melt.x, .var=c("Nekton"), .fun=function(x){
gam(scale(Abundance)~s(PLAND_50,bs="cr")+s(FragIndex_50,bs="cr")+te(PLAND_50,FragIndex_50), gamma=1.4)
})
lapply(gams_50, summary)
代码运行没有错误,然而,当我检查结果时,我注意到不同物种的结果是相似的(即,相同的调整 R、变量 p 值、GCV 分数等)。有人知道如何运行多个游戏吗?或找出错误的来源?
欢迎和赞赏所有想法!希望我没有含糊其辞。如果您需要任何进一步的信息,请告诉我。
最好的,罗洛