2012-10-25 57 views
0

有沒有辦法使R mcmcplot()函數在被調用時不能打開瀏覽器?我需要在集羣上運行我的R代碼,並且如果mcmcplot()試圖打開瀏覽器,它會嘔吐。R代碼mcmcplots函數

輸出可以轉儲到文件嗎?

+0

可以試試(mcmcplot())'解決你的問題嗎? –

回答

3

該函數將所有內容寫入文件並在瀏覽器中打開它。如果你不想打開瀏覽器,我會建議編輯該函數以傳遞是否要在瀏覽器中打開作爲參數。只需輸入名稱而不用任何括號就可以檢索該函數。

mcmcplot

然後複製輸出到一個編輯器,在開始改變函數的名稱,並添加德的說法:

mcmcplotnew=function (mcmcout, parms = NULL, regex = NULL, random = NULL, 
    leaf.marker = "[\\[_]", dir = tempdir(), filename = "MCMCoutput", 
    extension = "html", title = NULL, heading = title, col = NULL, 
    lty = 1, xlim = NULL, ylim = NULL, style = c("gray", "plain"), 
    greek = FALSE,ShouldIPlotinbrowser=T) #new argument here 

然後有功能的更多部分

然後在最後有

cat("\r", rep(" ", getOption("width")), "\r", sep = "") 
    cat("\n</div>\n</div>\n", file = htmlfile, append = TRUE) 
    .html.end(htmlfile) 
    full.name.path <- paste("file://", htmlfile, sep = "") 
    browseURL(full.name.path) 
    invisible(full.name.path) 
} 

如果你有browsURL線,使得它像:你運行它之前

if(ShouldIPlotinbrowser) { browseURL(full.name.path) } 

然後初始化函數:

mcmcplotnew(whatever, usual, arguments,then,ShouldIPlotinbrowser=F) 
2

看着the source,似乎不是。在那裏無條件地致電browseURL()。也許通過製作一個在你的全局命名空間中什麼都不做的函數的虛擬版本,它的效果是可以避免的。

browseURL <- identity 

這可能會破壞其他瀏覽器活動一樣,所以在mcmcplot來電之後,你可能想

rm(browseURL) 

另外,從mcmcplot複製了所有代碼除了browseURL線並使用該功能代替。