0

最後に、私の状況を考慮して、論文研究を可能な限り再現性のある優れた研究にするという目標に近づけることにしました。LaTeX現在、論文レポートには使用していないので(このオプションを検討していますが)、それknitrが最善の方法であると考えています。

私の論文研究 (データ分析)の経験的部分を実装するソフトウェア プロジェクトは、 R. プロジェクトには、ディレクトリ構造内に複数のファイルが含まれています。これは、科学的なワークフローではかなり一般的です (最上位のサブディレクトリ: analysis, cache, data, figures, import, prepare, present, results, sandbox, utils)。

knitr一般的に、レポートの自動生成と再現可能な研究に使用するための多くの情報 (例を含む) を読みました。しかし、私は多数の構成オプションにいくらか圧倒されており、さらに重要なことに、複数のファイルとディレクトリを含む私のようなプロジェクトで使用するための最良/正しい/最適なアプローチについてまだ混乱しています。特に、モジュールの変更をあまり行わずに既存のコードベースを移行するためのフレームワークと手順に関するアドバイスに興味があります。knitr R

として、探索的データ分析 (EDA)に関連する私のモジュールを考えてみましょう。私の現在の EDA ワークフローには以下が含まれます。

  • 元の生データから変換された予備データ (「data/transform」サブディレクトリにあります)。

  • 「analysis」ディレクトリにあるモジュール「eda.R」。

  • 私の現在のコードは、単変量および多変量EDAの図(SVGファイル)と、同じグラフィックのみの情報を含む単一のドキュメントレポート(PDFファイル)を生成しています(生成された記述統計は、 「eda.R」スクリプトを実行したときのコンソール出力)。

ベースのプロジェクトに移行するために、ローカルオプションを設定するためのステートメントを含むknitrファイル「eda-report.Rmd」を作成しました。私の理解では、EDA ワークフローに従って、「eda.R」内の既存のコード ブロックをチャンクとして定義し、これらの名前付きチャンクを呼び出す必要があるということです。R Markdownknitrread_chunk("eda.R")Rknitr

質問:

それは正しいアプローチですか?knitrプロジェクト パスの設定、 の使用source()、 によるプロットのグループ化gridExtra、潜在的な問題の防止に関するベスト プラクティスは何ですか? 「eda-report.Rmd」に加えて、別の R モジュールを作成する必要があるように思え.Rmdますknitr。はいの場合、どの呼び出しを使用すればよいですか?rmarkdown::render()またはknitr::knit()(RStudio開発に使用している間は、コードを開発環境から独立させたい)?

更新 1 (追加の質問):

「Knit HTML」ボタンを介して.Rmdファイルを処理するとドキュメントが生成されるのに、コマンドを介して処理するとファイルが生成されるのに、ディレクティブが存在するにもかかわらず、ファイルが生成されないのはなぜですか?RStudioHTMLMakefileRscript -e 'library("knitr"); knit("eda-report.Rmd")'.mdHTMLoutput: html_document

これを読んでくれてありがとう!あなたのアドバイスは大歓迎です!

4

1 に答える 1

2

ワークフローを Knitr を使用するように移行するには、記述したコードの最後のすべての部分を再現可能にしようとするのではなく、最も役立つ部分から始めることをお勧めします。

Knitr はレポート生成ツールであるため、最初は、knitr で学位論文を書くことから始めるのが最適です。(あなたは、現時点では LaTeX を使用していないとおっしゃいました。それで結構です。knitr は AsciiDoc もサポートしているので、私は書きやすいと思います。論文に数式や表があまりない場合は、 Markdown または Textile の方が簡単です。)

同様に、knitr は、作成する可能性のあるレポートや論文に適しています。

より高度な使い方として、knitr を使用してプレゼンテーションを作成できます。(xhtml Slidyプレゼンテーションを編むこともあります。)

私が気にしないのは、すべての探索的データ分析を組み立てようとすることです. あなたが見つけるほとんどのものは退屈または行き止まりであるため、余分な努力をする価値はありません. できるだけ早く探索することに集中し、後で興味深い部分を編みます。同様に、データ クリーニングは通常それほど興味深いものではないため、よくコメントされたコードで十分な場合がよくあります。


ディレクトリ構造に関するあなたの質問に答えるために、私の好みは、knitr レポートは最終的な出力用であるため、スクラップの調査作業から離れてサンドボックス化する必要があるということです。つまり、独自のディレクトリを持ち、Figure の独自のコピーを作成できます。

于 2014-07-20T09:46:34.870 に答える