使用rprojroot改善麻煩的檔案路徑問題,以子資料夾結構取而代之

screenshot.png

在Jenny Bryan登高一呼,希望有人解決這種資料夾路徑總是要重設的問題時,這個rprojroot 便誕生了,他主要解決了路近依賴的問題,而使用sub-directory結構取而代之,本身是個簡單的package,但算是為培養好的reproducible coding踏出一步。

rprojroot要發揮作用的話,要建立在兩個使用者的好習慣:
第一個每個專案有固定的子資料夾結構,這我個人覺得很重要,專業素養便是從檔案管理做起,可以看下面的文章,對於如何管理好專案,裡面的建議頗受用

Managing a statistical analysis project – guidelines and best practices
R Workflow: Slides from a Talk at Melbourne R Users
Dynamic documents with R and LATEX as an important part of reproducible research
How to efficiently manage a statistical analysis project?

第二個願意系統性的寫好代碼(可能30秒能搞定的代碼,必須多花兩倍時間,為了代碼的嚴謹)

     假如使用者有上面這兩個習慣,這個包便可以幫助你的R代碼進步一點點,此包主要使用一個概念,便是為專案root資料夾設立“criteria”,藉由檢查當前的資料架內結構,是否為特定的形式如r package、r project,或是包含特定檔名的檔案。藉由這個criteria,來確定root路徑,而剩下的檔案便是用相對路徑來表示

這邊有示範的代碼:

library(rprojroot
#Make Criteria
root <- has_file("README.md")

#Fine the file
dir <- find_root(root)
data.path <-find_root_file("Data", criterion = root)

#True or False criteria
file.exists(find_root_file("Data", criterion = has_file("README.md")))

這邊則是我的放代碼的資料夾結構:
screenshot.png

所以使用這個包來設定檔案路徑,未來只要整個資料夾給要合作的對象,基本上,重新執行就不會發生問題。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s