knitr 청크 옵션 "dependson"에 관한 질문이 있습니다. 내가이 매뉴얼을 이해한다면,이 옵션은 캐시 된 덩어리가 의존하는 다른 캐시 된 덩어리를 지정하는데 사용되어야한다. 그러나 캐시되지 않은 청크가 변경되면 청크의 캐시를 무효화 할 수 있습니까? knitrtest.Rnw캐시되지 않은 청크가 변경 될 때 청크의 캐시를 무효화하십시오.
파일 : 여기
는 최소한의 예입니다\documentclass{article}
\begin{document}
<<>>=
library(knitr)
read_chunk("chunks.R")
@
<<not_cached>>=
@
<<cached, cache=TRUE, dependson="not_cached">>=
@
\end{document}
파일 chunks.R :
## @knitr not_cached
var <- 42
## @knitr cached
var
내가 변경 VAR 출력에서 dependons 옵션처럼 "캐시 된"청크는 여전히 42입니다. 적용되지 않습니다. 예를 들어 첫 번째 청크를 캐싱하여 문제를 해결할 수도 있습니다. 그러나 첫 번째 청크에서는 library()
을 사용하고 외부 파일을 읽으므로이 작업을 수행 할 수 없습니다. 따라서이 청크를 캐시해서는 안됩니다.
캐시되지 않은 청크가 변경되면 캐시를 무효화 할 수 있습니까?
감사합니다. Yihui! 각각의 청크에 개별적으로 적용 할 때 당신이 제안한 것은 효과가 있지만,'chunk.whatever = var'를 전역 청크 옵션으로 설정할 수없는 것처럼 보입니다. 'opts_chunk $ set (cache.whatever = var)를 사용하면 효과가 없습니다. 이 문제에 대한 해결책이 있습니까? –
@ user2706569 나는 위의 대답을 편집했다. –
그것이 작동합니다. 다시 한번 감사드립니다! 아마 http://yihui.name/knitr/demo/cache/에서 이것을 언급해야할까요? 그런데,'opts_chunk $ set (cache.whatever = quote (foo))'를 설정하는 것이'foo'가 미리 정의되어 있지 않으면 에러를 발생시키는 것처럼 보입니다. 마지막 질문 : cache.whatever = c (quote (foo), quote (bar))도 cache.whatever = list (quote (foo), quote (bar))도 작동하지 않는 것 같습니다. 옵션 당 둘 이상의 변수를 사용하는 다른 방법이 있습니까? –