gpt4 book ai didi

r - 在 knitr 中缓存子文件

转载 作者:行者123 更新时间:2023-12-04 15:24:17 24 4
gpt4 key购买 nike

我在 knitr 中遇到子文件问题。缓存工作正常,但依赖项不起作用。我的沙箱示例如下所示:

\documentclass{article}

\begin{document}

<<setup, cache=FALSE>>=
opts_chunk$set(cache=TRUE, autodep=TRUE)
dep_auto() # figure out dependencies automatically
@

<<a>>=
x <- 14
@

<<b>>=
print(x)
@

<<child, child='child.Rnw', eval=TRUE>>=
@

\end{document}

'child.Rnw' 看起来像这样:
<<child>>=
print(x)
@

当我现在编译代码时,然后在块 a 中更改 x 然后再次编译它:块 b react 正常,但 child 没有。我做错了什么吗?

谢谢您的帮助!

最佳答案

我想了一会儿这个问题,我发现目前很难解决。问题是父文档并不真正知道子文档里有什么,dep_auto()设置依赖结构时不考虑子文档。有两种方法可以解决这个问题。第一个是hackish:

knitr:::dep_list$set(a = c('child', 'b'))

您可能知道, :::在 R 中表示“危险区域”。在 knitr 中, dep_list是控制依赖结构的内部对象。两者 dep_auto()dep_prev()依赖于这个对象(类似地,这就是块选项 dependson 的工作方式)。

第二种方法是将您的对象写入块选项,例如
<<child, whatever=x>>=
print(x)
@

阅读 the knitr cache page 中的第三部分详情。

关于r - 在 knitr 中缓存子文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15094602/

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