2016-08-23 4 views
0

RStudioのニットボタンを使用すると、シンプルなファイルを扱うときにうまく動作し、RmdファイルとそれからPDFを自動的に生成します。今、私はRStudioのR knitr:ルートディレクトリ構造のオプションを設定できません

MainProjectDir/

MainProjectDir /コード/

MainProjectDir/DataRaw/

MainProjectDir/DataWork/

にディレクトリを分けてきた大きなプロジェクトに取り組んでいますgetwd()は私にMainProjectDirパスを与えます。 Codeディレクトリの.rファイルは互いに呼び出して、MainProjectDirパスからの相対パスを使用してDataディレクトリからデータを読み込んだり、Dataディレクトリにデータを保存したりします。ファイル内

エラー(ファイル名、「R」、エンコーディング=エンコーディング)::コードディレクトリにある.Rファイルのニットのボタンを使用している場合

は今、私は、接続エラーを取得し、接続を開くことができません

ここではいくつかの回答を読み、Yihuiのページを見た後、私は

knitr :: opts_knitの$セットでknitrパッケージのroot.dirオプションを設定しようとした(= root.dir "..")

RStudioの「ニット」ボタンを押す前にコンソールに表示されます。それでも私は同じエラーが発生します。パスの絶対パスバージョンも試してみました。私は間違って何をしていますか? githubのディスカッションスレッド上の問題のために、この回避策を見つけ

+0

'rmarkdown :: render'関数を使ってみましたか? – YCR

+0

私はFile/Knitメニューコマンドを使って、RStudioにpandoc/knitrへの呼び出しをさせます。単純なディレクトリ構造上でうまく動作するため、相対パスを正しく記述する方法を見つけようとしています。あなたが提案する流れは何ですか? – claudiu

+0

関数rmarkdown :: renderを使用する別のスクリプトがあります。これにより、環境をより適切に制御できます。それ以前に 'rm(list = ls())'を使って地球環境をきれいにするのが最善です。 – YCR

答えて

0

、Rコードに追加して動作します:

を(ベース名(getwd())== "コード")setwd(normalizePath( ".."))場合

(「..」root.dir =)迅速な解決のために誰かが

knitr :: opts_knitの$セットと間違っていたかを説明できるかどうか探している人のために

これを投稿してどのように修正しますそれは投稿してくださいと私は彼の答えを受け入れるよ。

0

これですべての問題が解決するかどうかは不明ですが、Dean Attaliのezknitrパッケージを見たことがありますか?これにより、ディレクトリの柔軟性が向上します。

+0

ドキュメントに基づいて、このパッケージは実際に私が使用しているディレクトリ構造を許可する必要があります。それでも、私はRmdの代わりにRStudioのニットボタンと元のRファイルを扱うことの利便性を保ちたいので、醜い回避策を見つけておきましょう。上記のGregorの提案に書いたコメントを見てください。 setwd()を削除するだけの場合は... – claudiu

関連する問題