2012-10-23 122 views
2

可能重複:
Workflow for statistical analysis and report writing項目組織有R

我一直有R編程的不算太長,但我遇到了,我希望有人能給出一個項目組織問題我有一些提示。我發現我做的很多分析都是臨時的:也就是說,我運行一些東西,考慮結果,並且運行一些並運行更多。這與C++之類的語言在概念上有所不同,您可以在編碼之前思考您想要運行的整個事物。這是解釋型語言的巨大好處。但是,出現的問題是我最終會保存大量的.RData文件,因此我不必每次輸入source。有沒有人有任何關於如何組織我的項目的好主意,所以我可以在一個月後回到它,並有一個很好的想法,每個文件是與什麼關聯?

這是我猜想的一種文檔問題。我是否應該在每一段文件中記錄整個項目,並積極處理那些不再需要但是是研究副產品的文件?這是我目前的系統,但有點麻煩。其他人有沒有其他建議?

根據下面的評論:我試圖避免的關鍵事件之一是.R分析文件和與它們一起的.RData集合的擴散。

http://software-carpentry.org/4_0/data/mgmt/

拿回家的消息是:

+2

你讀過這個嗎? http://stackoverflow.com/questions/1429907/workflow-for-statistical-analysis-and-report-writing –

+0

nope,沒有跑過它。讓我看看!謝謝 – Alex

+1

2美分:無論如何,您編寫的每個函數都應包含文檔。稍後你會爲此感謝。您的清理數據還應該序列化(saveRDS),以便將來使用。其他一切都應該是一個功能,或逐行分析。這裏沒有正確的,錯誤的或「最好的」 - 只有偏好。有了這個說法,如果你要經歷編寫文檔的麻煩 - 你也可以實施變更管理(git,其他)和分析打包。 –

回答

2

研究項目組織這裏的幾點思考

  • 使用版本控制你的程序
  • 使用合理的目錄名
  • 爲您的元數據使用版本控制
  • 真的,版本控制是一件好事。
2

我的分析是一個knitr文檔,其中包含一些外部.R文件。

所有數據都在數據庫中,但在分析過程中,處理後的數據保存爲.RData文件。只有當我刪除RData時,當我再次運行分析時,它們將從數據庫中重新創建。有點像緩存,當我重新運行(部分)分析時,可以節省數據庫訪問和數據處理時間。

使用knitrSweave等)文檔進行分析可以使您輕鬆編寫包含結果的文檔化工作流程。並且knitr緩存分析的結果,所以小的改變通常不會導致所有R代碼的完全重新運行,但只是一小部分。節省相當多的運行時間以進行更大的分析。

(啊,和以前說過:使用版本控制另一個祕訣:用knitr和版本控制工作是很容易與RStudio。)