我試圖使用read_chunk()
將我的R代碼與Lyx文件分開,如here所述。使用read_chunk('foo.R')的Lyx + knitr代碼外部化失敗
我的Lyx安裝程序從knitr_minimal.lyx
編譯knitr_minimal.pdf
沒有任何問題。
但是然後我試圖替換此:
<<boring-random>>=
set.seed(1121)
(x=rnorm(20))
mx <- mean(x)
vx <- var(x)
@
x的第一個元素是\ Sexpr {X [1]}。它的意思是\ Sexpr {mx}。
與此:
<<boring-random, cache=FALSE>>=
read_chunk('minimal.R')
@
x的第一個元素是\ Sexpr {X [1]}。它的意思是\ Sexpr {mx}。
腳本minimal.R
保存在同一目錄中,並且由剛
set.seed(1121)
(x=rnorm(20))
mx <- mean(x)
vx <- var(x)
我保存修改後的文件作爲knitr_minimal1.lyx
並編譯它。文件knitr_minimal1.pdf
編譯好,但不是
x的第一個元素是0.145。其平均值是0.3217。
我看到
x的第一個元素是錯誤的eval(expr中,ENVIR,enclos):對象「X」未找到。它的意思是eval(expr,envir,enclos)中的錯誤:未找到對象'mx'。
我很感激任何意見。
謝謝Yihui,但是這仍然會產生相同的錯誤信息。除了添加你提到的標籤外,我還嘗試了'read_chunk(「minimal.R」,labels =「boring-random」,from = 1,to = 5)和'read_chunk(「minimal.R」,labels =「boring -random「,from = 2,to = 5)''和'read_chunk(」minimal.R「,labels =」boring-random「)'無濟於事。你提出了[knitr代碼外化](http:// yihui。名稱/ knitr/demo/externalization /)頁面,因爲這就是它開始的地方。但是一旦我理清了'knitr_minimal1.lyx',我就會明白這一點。 – Gabi 2013-02-19 14:59:10
@加比好吧,剛剛意識到了另一個問題。查看更新後的答案。也許你沒有閱讀過PDF手冊(http://yihui.name/knitr/demo/manual/),並且太快地跳到這個特性中,所以出現了誤解。 – 2013-02-19 16:53:39
Duh。抱歉。當然,這很好。現在來看我的代碼外部化的原始示例。原來,我需要一些軟件包,然後才能運行你的作業示例:到目前爲止,報告中缺少前兩個「tikzDevice」和「filehash」。順便說一句,在嘗試從Rstudio中的Rnw編譯PDF時,這樣做更容易理解。 LyX錯誤信息起初毫無幫助,然後Lyx意外退出,並邀請向Apple報告此事。我會報告我的進展。再次感謝。 – Gabi 2013-02-19 18:10:44