gpt4 book ai didi

r - knitr_child 升级到 R 3.0 后抛出错误

转载 作者:行者123 更新时间:2023-12-04 10:48:18 32 4
gpt4 key购买 nike

在升级到 R 3.0.1 后,一个已经无缝运行一个多月的脚本停止将我的子 Latex 代码添加到我的主文档中。以下代码段用于将编译后的 test.rnw 文件中的文本包含在我的主文档中(以便将其编译为一个文档)。现在它只包含编译的 rnw 文件的文件名。

<<run-all, include=FALSE>>=
out = NULL
for (i in 1:10) {
out = c(out, knit_child('test.rnw', sprintf('test-template-%d.tex', i)))
}
@

\Sexpr{paste(out, collapse = '\n')}

当我尝试以交互方式运行 knit_child 命令时,出现此错误:
> knit_child('test.rnw', sprintf('test-template-%d.tex', i))
Error in setwd(opts_knit$get("output.dir")) : character argument expected

单独运行 knit() 将编译 Latex 代码,如果我然后运行 ​​knin_child() 没有错误,但“out”对象只包含子文件的文件名而不是内容。

任何想法如何解决这一问题?

最佳答案

您不应该使用 knit_child()交互地。它被设计为在内部调用 knit() .

正如您所指出的,knit_child()最新版knitr如果不提供第二个参数,则返回子文档的内容。通过明确提供第二个参数 sprintf('test-template-%d.tex', i) ,您的意思是“请将输出写入此文件并返回文件名”。

要解决此问题,您需要删除第二个参数:

<<run-all, include=FALSE>>=
out = NULL
for (i in 1:10) {
out = c(out, knit_child('test.rnw'))
}
@

\Sexpr{paste(out, collapse = '\n')}

关于r - knitr_child 升级到 R 3.0 后抛出错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16827788/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com