2015-03-31 34 views
3

Reading this post我以爲我可以直接在.Rnw文檔中使用在全局環境中加載的R對象,並直接在RStudio中將它們編譯爲PDF。但不幸的是,這並不適合我...RStudio中的Sweave無法找到在全局環境中加載的對象

我想作出summarydata.frame毫無疑問已經加載到我的全球環境。

在控制檯中評估summary(JLLdata)會產生正確的輸出。但是,當我嘗試在我的.Rnw文件中包含summary(JLLdata)時,出現錯誤(chunk 1) Object 'JLLdata' not found

這裏我.Rnw語法:

\documentclass{article} 

\begin{document} 
\SweaveOpts{concordance=TRUE} 

<<JLLdata>>= 
summary(JLLdata) 
@ 

\end{document} 

在這裏,來自R工作室的截圖(你可以看到JLLdata是在全球環境和編譯PDF錯誤)

enter image description here

回答

4

的來自Sweave.Rnw文檔的代碼在單獨的R會話中運行,因此它無法訪問您在控制檯中加載或創建的對象。您必須在Sweave代碼塊中明確加載數據,以便在致電summary時可以訪問該數據。

+0

Thx @Thomas,你是對的。包括'load(file =「/path/globalenvironmnetsaved.RData」)'這樣的工作......這有點令人討厭的解決方案,因爲我的'.RData'大小爲200MB,因此編譯PDF需要一段時間。 。 – 2015-03-31 20:30:10

+1

請考慮使用knitr,它提供了一個緩存選項,大大減少了編譯時間。 – Thomas 2015-03-31 20:38:47

+1

或者從命令行使用'Sweave()',因爲R本身具有靈活性,GUI按鈕的便利性不可避免地帶走了。也許寫一點實用功能來簡化這個過程,把它放在你的.R檔案或一個個人軟件包中,以便加載。例如:'sweave2pdf < - 函數(文件)texfile < - Sweave(file); tools :: texi2pdf(texfile) }' – 2015-03-31 20:45:20

相關問題