簡體   English   中英

在R中后台運行作業

[英]Running jobs in background in R

我正在使用250 x 250矩陣。 但是,計算此過程需要花費大量的時間。 至少需要一個小時。

我是否可以將此矩陣存儲在R的內存中,以便每次打開R時,矩陣就已經存在。

理想情況下,我想知道是否有可能在R中在后台運行作業,這樣我就不必等待一個小時就可以取出矩陣並可以使用它。

1)關閉R時,可以保存R的工作空間。通常R會問“保存工作空間圖像?”。 當您關閉它時。 如果回答“是”,它將把工作區保存在一個名為“ .Rdata”的文件中,並在啟動一個新的R實例時加載它。

2)更好的選擇(更安全)是顯式保存矩陣。 有幾種方法可以完成。 選項之一是將其另存為Rdata文件:

save(m, file = "matrix.Rdata")

其中m是您的矩陣。

您可以隨時通過以下方式加載矩陣

load("matrix.Rdata")

如果您在同一工作目錄中。

3)沒有R的后台計算這樣的選項。但是您可以打開多個R實例。 在一個實例中執行計算,而在另一實例中執行其他操作。

有用的是將計算出的文件輸出到文件中,然后每次打開R時都對該文件進行解析。編寫一個自己的computeMatrix()函數或腳本來生成一個文件,並以合理的格式存儲矩陣。 還可以編寫一個loadMatrix()函數或腳本以讀取該文件並將矩陣加載到內存中供使用,然后在每次啟動R並希望使用矩陣時調用或運行loadMatrix。

就在后台運行R作業而言,您可以從命令行運行語法為“ R CMD BATCH scriptName”的R腳本,其中scriptName替換為腳本名稱。

最好使用ff包並將矩陣另存為ff對象。 這意味着實際的矩陣將以有效的方式保存在磁盤上,然后,當您開始一個新的R會話時,您可以指向同一文件,而無需將整個矩陣加載到內存中。 當您需要矩陣的一部分時,只會加載您需要的部分,因此速度更快。 即使您需要將整個矩陣加載到內存中,其加載速度也要比讀取文本文件快。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM