knitr
ドキュメントを書き込んでいますがLatex
、キャッシュ メカニズムに問題があります。具体的には、後で使用するために複数のデータ フレームを CSV ファイルに書き込んで読み込むという問題がありますpgfplotstable
。ただし、対応する CSV ファイルが何らかの方法で削除または変更された場合、knitr のキャッシュ メカニズムはチャンクの再実行に失敗します。たとえば、次のドキュメントを 1 回実行し、削除mwe.dat
してから再度実行すると、エラーが発生します。
\documentclass{article}
\begin{document}
<<cache=TRUE>>=
df <- data.frame(a=rep(1,5), b=rep(2.5), c=rep(3,5))
write.csv(df, file='mwe.dat')
rm(df)
@
<<cache=FALSE>>=
df <- read.csv(file='mwe.dat')
## Warning: cannot open file ’mwe.dat’: No such file or directory
## Error: cannot open the connection
@
\end{document}
問題は、knitr がチャンクを再実行する必要があることをどのように判断するかということです。チャンクのソース コードの実際の変更のみの場合、write.csv
ほとんどの場合、チャンクはデータ フレームのみを設定するという事実にもかかわらず、(かなりの量の) ステートメントをそれぞれ独自のチャンクにラップする必要があります。書かれる。