LYX + knitr与read_chunk代码外化( 'foo.R')失败(Lyx

2019-10-17 17:57发布

我想使用read_chunk()的解释,从我的LYX文件分开我的R代码里面这里 。

我LYX设置编译knitr_minimal.pdfknitr_minimal.lyx没有任何问题。

但后来我试图取代这个:

<<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错误(表达式,ENVIR,enclos):对象 'MX' 未找到。

我会的任何意见表示感谢。

Answer 1:

你有一个标签添加到您的代码minimal.R对应的LyX的文件块的标签,否则knitr不知道在哪里插入代码。

## @knitr boring-random
set.seed(1121)
(x=rnorm(20))
mx <- mean(x)
vx <- var(x)

如果您在打开将R脚本knitr 网页 ,你会看到的形式的评论几行## @knitr label 。 我会更新网页澄清这一点。 有指定的标签,这是中介绍的另一种方法?knitr::read_chunk

您LyX的文档的第二个问题是你把read_chunk()boring-random块,但你真的需要你将它插入块阅读的代码。

<<setup>>=
read_chunk('minimal.R')
@
<<boring-random>>=
@


文章来源: Lyx+knitr code externalization with read_chunk('foo.R') fails
标签: r knitr lyx