我只是想知道如何使用循环来浏览一些模型并为它们绘制图形?
我有很多年龄组的混合模型,每个年龄组我都有2,3,4,5个组件模型。我使用以下方法命名它们:
ag1.mix2
ag1.mix3
ag1.mix4
ag1.mix5
ag2.mix2
ag2.mix3
ag2.mix4
ag2.mix5
依此类推(ag1 =年龄组1; mix2 = 2种混合物成分)。
现在,我试图为每个模型绘制图形,我试图通过使用类似的东西来简化代码:
for(i in 1:11) {
emf(paste("Mixture Components by Age Group ", i, ".emf"))
par(mfrow = c(2, 2), oma = c(0, 0, 2, 0))
for(j in 2:5) {
plot(cat("ag", i, ".mix", j, sep = "", "\n"), which = 2, las = 1, breaks = 100,
main2 = paste(j, "components"))
}
title(main = paste("Age Group", agegp[i]), outer = TRUE)
dev.off()
}
然而,它没有起作用,R抱怨:
Error in plot.window(...) : need finite 'xlim' values
如果我这样做:
plot(ag1.mix2, which = 2, las = 1, breaks = 100, main2 = "2 Comonents")
然后它工作正常。但是,要使用4x11型号,我希望我可以使用循环!
任何建议都将不胜感激。
凯文
PS - 使用mixtools包装混合模型。
答案 0 :(得分:0)
您可以尝试使用get
喜欢
for(j in 2:5) {
data_to_plot=get(paste0("ag", i, ".mix", j ))
plot(data_to_plot, which = 2, las = 1, breaks = 100,
main2 = paste(j, "components"))
}
小工作示例:
data1=1:10
data2=2:20
for (i in 1:2){
png(paste0("plot_",i,".png"))
data_to_plot=get(paste0("data", i))
plot(data_to_plot)
dev.off()
}