使用eHOF包使用R在for循环中绘图
我想使用R包eHOF运行大量(~100)个eHOF模型,生成这个包可以生成的模型图,并保存每个模型的jpeg文件。我试图使用for循环来快速完成这项工作,但我无法让它生成图形。我在R studio plots窗口中看不到任何内容,我生成的jpeg文件中没有任何内容(顺便提一下,我没有在循环中正确生成jpeg文件的名称)使用eHOF包使用R在for循环中绘图,r,for-loop,plot,R,For Loop,Plot,我想使用R包eHOF运行大量(~100)个eHOF模型,生成这个包可以生成的模型图,并保存每个模型的jpeg文件。我试图使用for循环来快速完成这项工作,但我无法让它生成图形。我在R studio plots窗口中看不到任何内容,我生成的jpeg文件中没有任何内容(顺便提一下,我没有在循环中正确生成jpeg文件的名称) 要生成这些图,在循环之外没有问题,例如,如果我调用我的模型modSP,这里会发生一些事情: 您的SpeciesCodes向量的代码与HOF_Sp中的列名不同 seq_-along
要生成这些图,在循环之外没有问题,例如,如果我调用我的模型modSP,这里会发生一些事情:
SpeciesCodes
向量的代码与HOF_Sp
中的列名不同seq_-along(…)
返回参数中每个元素的索引,而不是元素本身HOF
的对象被传递到plot(…)
时,调用HOF
的plot
方法。但是你正在通过粘贴(c(HOF)),这是不可理解的HOF_Sp
的样本是退化的,因为不存在非零值SpeciesCodes <- c("ACPE","ACRU2","ACSP2")
for (Spp in SpeciesCodes) {
model <- HOF(HOF_Sp[[Spp]],GDD, M=1,family=binomial, bootstrap=2, freq.limit = 100)
jpeg(filename = (paste(("GDD_responsecurve_",Spp,".jpg"),sep="")),
width =8.3, height = 8.3, units = "cm", pointsize = 8, bg="white", res = 800)
plot(model, boxp = TRUE,
las.h = 1, onlybest = TRUE, para = TRUE,
gam.se = FALSE, newdata = NULL, lwd=1, leg = TRUE, add=FALSE,
xlabel="Growing degree days", ylab="Probability")
dev.off()
}
哈利路亚!这是可行的,除了我编辑了一点代码,所以现在:SpeciesCodes
species<- read.csv("F:/Thesis_projects/Chapter4_climateChange/HOF/259species.csv")
species<-as.data.frame(species)
enviro<-read.csv("F:/Thesis_projects/Chapter4_climateChange/HOF/EnvironmentalData.csv")
enviro<-as.data.frame(enviro)
species_enviro<-merge(enviro, species, all.x=FALSE)
HOF_Sp<-species_enviro[,23:25]
GDD<-species_enviro[,19]
library(eHOF)
SpeciesCodes<-c("ACPE","ACRU2","ACSP2")
Modx<-NULL
for (Spp in seq_along(SpeciesCodes)){
Modx[[Spp]]<-HOF(HOF_Sp[[Spp]],GDD, M=1,family=binomial, bootstrap=2, freq.limit = 100)
jpeg(filename = (paste(("GDD_responsecurve_",SpeciesCodes[[Spp]],".jpg"),sep="")),
width =8.3, height = 8.3, units = "cm", pointsize = 8, bg="white", res = 800)
print(plot((paste(c(Modx[[Spp]]))), boxp = TRUE,
las.h = 1, onlybest = TRUE, para = TRUE,
gam.se = FALSE, newdata = NULL, lwd=1, leg = TRUE, add=FALSE,
xlabel="Growing degree days", ylab="Probability"))
dev.off()
}
> head(GDD)
[1] 996.1681 996.1681 962.0662 962.0662 945.7007 945.7007
> head(HOF_Sp)
ACMI2 ACPA ACPE
1 0 0 0
2 0 0 0
3 0 0 0
4 0 0 0
5 0 0 0
6 0 0 0
SpeciesCodes <- c("ACPE","ACRU2","ACSP2")
for (Spp in SpeciesCodes) {
model <- HOF(HOF_Sp[[Spp]],GDD, M=1,family=binomial, bootstrap=2, freq.limit = 100)
jpeg(filename = (paste(("GDD_responsecurve_",Spp,".jpg"),sep="")),
width =8.3, height = 8.3, units = "cm", pointsize = 8, bg="white", res = 800)
plot(model, boxp = TRUE,
las.h = 1, onlybest = TRUE, para = TRUE,
gam.se = FALSE, newdata = NULL, lwd=1, leg = TRUE, add=FALSE,
xlabel="Growing degree days", ylab="Probability")
dev.off()
}