Knitr:存储变量以供日后使用

Knitr:存储变量以供日后使用

我对 Knitr 还比较陌生。我只想运行一次函数,这样下次就不必对其进行求值,因为这样会产生不同的结果。我的 MWE:

第一次:

\documentclass{article}

\begin{document}

<<>>=
a<<-Sys.time()
@

<<>>=
a
@

\end{document}

第二次:

\documentclass{article}

\begin{document}

<<eval=FALSE>>=
a<-Sys.time()
@

<<>>=
a
@

\end{document}

我尝试使用<<-以便将变量存储在全局环境中,但是它不起作用。

答案1

该文件展示了一个重复sample()函数,它覆盖了“A“带有随机整数的对象,但最后四个位于条件函数中,仅sample()A不存在,并且这只在第一个条件下成立,因为“A“先前已被删除:

\documentclass{article}
\begin{document}
<<echo=F>>=
# "a" change every time 
a<- sample(1:1000, 1); a
a<- sample(1:1000, 1); a
a<- sample(1:1000, 1); a
a<- sample(1:1000, 1); a
rm(a)
# "a" change only the first time
if (exists("a")){a} else {a<- sample(1:1000, 1);a}
if (exists("a")){a} else {a<- sample(1:1000, 1);a}
if (exists("a")){a} else {a<- sample(1:1000, 1);a}
if (exists("a")){a} else {a<- sample(1:1000, 1);a}
@
\end{document}

输出应显示五个随机数,其中最后一个重复(不变)三次,例如:

## [1] 220
## [1] 125
## [1] 113
## [1] 463
## [1] 701
## [1] 701
## [1] 701
## [1] 701

相关内容