2016-11-21 11 views
4

私はRStudio 1.0.44にアップグレードしましたが、これはknitr :: opts_knit $ set(root.dir = path)のようです。以前と同じように動作していません。メッセージをスローします:

The working directory was changed to /... inside a notebook chunk. The working 
directory will be reset when the chunk is finished running. Use the knitr 
root.dir option in the setup chunk to change the the working directory for 
notebook chunks. 

このメッセージは、次のすべてのコマンドで表示されます。私はまだrmdを編んでいないことに注意してください。私はちょうどそれからコマンドを実行しています。 setwd()を介してコマンドラインに直接作業ディレクトリを設定すると、getwd()の正しいパスが返されますが、ファイルを相対パス(。/ ...)で再度ロードするとメッセージの上に戻ります。正確に同じrmdは、RStudio 0.99.896でうまく動作します。私は何が欠けていますか? ウェブサイトにdedicated pageの下部に説明したよう

```{r "setup", include=FALSE} 
knitr::opts_knit$set(root.dir = getwd()) # with something else than `getwd()` 
``` 

sessionInfo() 

R version 3.3.0 (2016-05-03) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
>Running under: Windows 7 x64 (build 7601) Service Pack 1 

other attached packages: 
[1] scales_0.4.0  ggplot2_2.1.0 xtable_1.8-2  data.table_1.9.6 
[5] dplyr_0.4.3  knitr_1.15  pander_0.6.0 
+2

私は同じ問題を抱えています。あなたはあなたのことを解決しましたか?どうやって? –

+0

こんにちは、解決されておらず、(@ RStudioの)誰も答えませんでした。私自身の答え/下記の説明を参照してください。満足できるものではありません。 – Triamus

+0

しかし、実際には、私は現在、私の古いワークフローで新しいRStudioを使用することはできません。なぜなら、ctrl + rを使って1行の実行で作業ディレクトリを変更することはできないからです。 getwd()を介して正しいディレクトリを返します。相対的なdata.table :: fread( "./ my_file")では、私は変更したばかりの作業ディレクトリに格納されていないファイルをrmdが見つけようとします。コードとデータを異なる作業ディレクトリに分割する人々が、RStudioのマークダウンでインタラクティブに作業できるようになったのはわかりません。 – Triamus

答えて

3

あなたはでの作業ディレクトリを変更することができます。

しかし、Restart R and run all chunks(RStudioの[ファイル名を指定して実行]>タブにアクセス可能)は、私のマシンで全く同じ問題を修正しました。

これは役に立ちますか?

+0

私は問題が異なる方向から来ていると思います。つまり、コードチャンクでCtrl + rを使用して1行実行する場合のrmdの新しい動作です。私自身の答えを見てください。 – Triamus

+1

チャンクは 'setup'と呼ばれなければならないのでしょうか?私が他のチャンク名を使用していたときは、パスは変更されませんでした。 –

1

私が見る限り、新しいrstudioではrmdファイルの動作が変更されています。 ctrl + rを使用してチャンク内の行だけを実行すると、OPの質問に記述されているようなメッセージが表示されます。むしろキーの組み合わせctrl + shift + enterは特定のチャンクの実行をもたらします。だから、私はrmdで1行を走らせることができず、その出力をコンソールに書き出すことができないようだ。

1

私のRmdファイルはdoc/file.rmdに、RコードファイルはR/code.rに、プロジェクトファイルは現在のフォルダ.です。 Rmdファイルを編むと、knitr::opts_knit$set(root.dir = "..")は機能しませんが、seated("..")が機能します。

source(R/code.r)と同じ最初のセットアップチャンクにknitr::opts_knit$set(root.dir = "..")と書いてあります。つまり:

```{r "setup", include=FALSE} 
knitr::opts_knit$set(root.dir = "..") 
source(R/code.r) 
``` 

これを2つのチャンクに分割すると、今すぐ動作します。つまり:

```{r "setup", include=FALSE} 
knitr::opts_knit$set(root.dir = "..") 
``` 

```{r "source"} 
source(R/code.r) 
``` 

これが問題かどうかはわかりません。誰かや将来の自分が同じばかげたミスを犯した場合に備えて、私はここに入れます。

+0

それはちょうど私の問題ではないが、私の将来の自己の問題であったかもしれないので、本当に知って良い! – Triamus

0

この現象も発生しました。 修正はnormalizePath()を使用することです:

```{r setup, include=FALSE} 
knitr::opts_knit$set(root.dir = normalizePath("..")) 
``` 

EDIT

それは、これが修正できなかったが判明しました。しかし、これはGoogleの検索に多く表示されるので、私は最終的にあなたが設定ニットパラメータの塊はあなたのコードを実行してはならないことを知った。

他のチャンクからスクリプトを入手する必要があります。これで問題は解決します。

これは、hereと記載されています。

関連する問題