[英]Parallel processing in R
我在R中有一個代碼,可以使用隨機森林算法對60個數據集進行分類和估計(使用回歸建模),並且在其末尾有一個圖來顯示數量如何隨時間變化。 我正在執行相同的離開程序,由於需要很長時間,因此我使用了doSnow包進行並行處理。 我能夠看到代碼正常運行(我將cat命令的輸出存儲在單獨的日志文件中)。 但是,當我打開foreach循環的每次迭代后保存的圖時,它是空的。 似乎完全浪費時間,因為繪圖結果是我節省的唯一輸出。 我在這里做錯了什么? 我正在使用R-Studio。
代碼是:
# Plotting
graphics.off()
plotIt(times,result)
dev.copy(device=png,filename=str_c(p1,"/",cur,".png"),width = 800, height = 600)
dev.off()
並且plotIt
的定義(用戶定義的fn)是:
plotIt = function(times,result)
{
par(mar=c(4.1,4.2,0.5,0.5))
par(mfrow=c(2,1))
t = time[ length(time) ]
plot(time/60,result
,xlab="time (min)"
,ylab="output"
,xlim=c(min(times)/60,max(times)/60)
,ylim=c(0,1)
,"s"
)
points(t/60,result[length(result)],col="red")
lines(c(min(times)/60,max(times)/60),c(0.5,0.5),lty=2)
lines(c(0,0),c(0,1),lty=3)
}
情節隨着時間的增加而增長。 隨着它的增長,我正在保存每個幀。 “ cur”代表幀號。 假設我的t值從1到50,我將有50幀,最后一幀顯示完成的圖。 因此,在我的路徑(p1)中,我將有50個圖(png文件)。
這個問題已經多次重復提出。 請僅保留一個實例。
就答案而言:代替下面的代碼,
filename=str_c(p1,"/",cur,".png")
您可以使用定義文件名
filename=paste(p1,"/",cur,".png",sep="")
我希望p1是文件的路徑。 如果您在path / file.png中遇到“ /”問題,請使用
graphics.off()
setwd(p1)
png(filename=paste(cur,".png",sep=""),width = 800, height = 600)
plotIt(times,result)
dev.off()
您尚未編寫任何有關如何生成“ cur”的文章。 因此,也請在您的解釋中包括該內容,以使查找代碼問題變得更加容易。 最好的-Mandar
如果在繪制圖之前嘗試打開png設備怎么辦。 我懷疑您的plotIt
方式將其發送到NULL設備,因此為什么您會得到一個空的繪圖
png(filename=str_c(p1,"/",cur,".png"),width = 800, height = 600)
plotIt(times,result)
dev.off()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.