2017-06-14 483 views
1

我有mydata.RDATA在R中使用,那麼我需要加載(),這意味着我需要首先setwd()curent目錄。我已經知道how to do it in R如何在R markdown中將當前文件位置設置爲工作目錄?

當我做R中降價:

{r echo=FALSE} dirname(parent.frame(2)$ofile) script.dir <- dirname(sys.frame(1)$ofile) setwd(script.dir)

我得到如下錯誤:

Error in dirname(parent.frame(2)$ofile) : a character vector argument expected calls :<Anonymous>...

+0

我真的推薦使用RStudio項目和相對路徑。我也在一些遺留代碼中使用'ofile'方法,但是這是非常不可靠的,取決於文件的來源,針織等。 – snaut

+0

我使用Rstudio,但從未使用過項目。我有500多個項目,然後我可以只在每個文件夾中存儲.Rdata文件。 – kittygirl

+0

是的,你只需要打開項目文件,然後工作目錄就會自動設置,並打開你在這個項目中最後一次打開的文件。 – snaut

回答

1

如果您.Rmd文件在一個子文件夾,你需要指定的根目錄爲,甚至如果你已經指定了一個工作目錄setwd()甚至RSudio項目。

還好,這是因爲添加下列塊到您的.Rmd文件的開始,YAML之後容易:

{r "setup", include=FALSE} require("knitr") opts_knit$set(root.dir = "~/path/to/project")

~/是Linux(也許蘋果機)您HOME目錄。如果你在Windows上,你必須調整它。

+0

我只是想不需要輸入'/ path/to/project',因爲當你移動.rmd文件時它不靈活。 – kittygirl

+0

爲什麼你在塊頭中放置什麼?如果它被稱爲「設置」,knitr會以不同的方式處理一個塊嗎? –

相關問題