2015-09-27 68 views
1

我試圖用R標記創建文檔,但文檔似乎無法識別當前工作空間中的變量。eval(expr envir enclos)在編織R標記時出錯

markdown文檔和工作區都位於相同的工作目錄中。

如何設置它以使用它們並更新文檔?

+3

歡迎來到SO。首先你應該閱讀[這裏](http://stackoverflow.com/help/how-to-ask)關於如何提出一個好問題;有一個很好的問題有更好的變化需要解決,你需要得到幫助。另一方面閱讀[this](http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)也不錯。它解釋瞭如何在R中創建一個可重現的示例。幫助用戶通過爲您的數據提供期望的輸出和您迄今爲止嘗試的內容來幫助您。 – SabDeM

+1

Rmarkdown與關閉R基本相同,並重新打開它。它不會從當前會話中讀取任何內容。如果你想加載內容,你需要在Rmarkdown文件中顯式加載它們。 – jeremycg

回答

0

當您編譯R標記文檔時,代碼在「乾淨」R會話中運行。這意味着它將而不是有權訪問工作區中的對象。 R-markdown文檔塊只能訪問在另一個文檔塊或同一塊中創建的對象。解決此

一種方法是將工作區寫出二進制文件

save.image("myWorkSpace.RData") 

針織之前,然後在您的R-降價文件的第一塊做

load("myWorkSpace.RData") 

但我不推薦它。包含在R-Markdown文檔中創建對象的代碼更好。這意味着文件完全獨立,增加了重複性。

+0

謝謝你的回覆,@atiretoo。事實上,我之前曾嘗試過,但我一直在收到錯誤。但是,這次讀取:「readChar中的錯誤」。我現在正在研究它,看看我能否得到這個工作。 關於在塊中創建對象,在這種特殊情況下,我試圖在文檔中繪製很長處理的結果。無論哪種方式,我都需要將data.frames加載到R-markdown中,如前所述,它也不起作用。 感謝您的建議。我會從現在開始努力朝這個方向努力。 –

1

我解決了這個問題,在文檔的第一個卡盤的頂部使用這一行。

knitr::opts_chunk$set(error = TRUE) 

其副作用是文檔具有所有日誌信息。我仍然在尋找更好的解決方法!

問候!

+0

解決了我的問題。謝謝! –

+0

此解決方案僅顯示錯誤並繼續構建文檔,它本身並不修復錯誤,因此您的文檔可能不完整(除非錯誤來自殘餘代碼)。 – Matt

0

如果您在.Rmd文件的相同代碼塊中包含多個<>,則會發生此錯誤。

相關問題