2016-08-23 145 views
0

使用RStudio中的編織按鈕對我來說工作起來非常漂亮,可以處理簡單文件,自動生成Rmd文件,然後生成PDF。現在我工作的一個大項目,我已經分裂目錄RStudio中的R編碼器:無法設置根目錄結構的選項

MainProjectDir/

MainProjectDir /代碼/

MainProjectDir/DataRaw/

MainProjectDir/DataWork/

getwd()爲我提供MainProjectDir路徑。 Code目錄中的.r文件相互調用,並通過使用MainProjectDir路徑中的相對路徑來加載和保存數據目錄中的數據。

現在,使用針織按鈕的代碼目錄.R文件,當我得到連接錯誤:

錯誤的文件(文件名,「R」,編碼=編碼):無法打開連接

這裏閱讀答覆少看一輝的頁面之後,我嘗試設置在knitr包root.dir選項與

knitr :: opts_knit $組(root.dir =「..」)

在按下RStudio中的編織按鈕之前在控制檯中。我仍然有同樣的錯誤。也嘗試了路徑的絕對路徑版本。我究竟做錯了什麼?

+0

您是否嘗試過使用'rmarkdown :: render'函數? – YCR

+0

我正在使用File/Knit菜單命令,讓RStudio對pandoc/knitr執行調用。適用於簡單的目錄結構,這就是爲什麼我試圖找到一種方法來正確描述相對路徑。你建議的流程是什麼? – claudiu

+0

你有另一個腳本,你在其中使用函數rmarkdown :: render。它可以更好地控制你的環境。最好是用rm(list = ls())'來清理你的全球環境。 – YCR

回答

0

找到此解決辦法在github討論線程中的問題,添加至R代碼和作品:

如果(基名(getwd())== 「代碼」)setwd(normalizePath( 「..」))

張貼這爲尋找一個快速的解決方案,但如果有人能解釋什麼是錯的

knitr :: opts_knit $組(root.dir =「..」)

以及如何修復它請發佈,我會接受他的答案。

0

不知道這是否能解決你所有的麻煩,但是你有沒有看過Dean Attali的ezknitr包?它給你更多的目錄靈活性。

+0

現在看,它基於該文件包應該確實允許我使用的目錄結構。不過,現在我想保留使用RStudio針織按鈕和原始R文件而不是Rmd的便利性,以便保持找到醜陋的解決方法。請參閱我寫給Gregor上面的建議的評論。如果我只能刪除setwd()... – claudiu