我对 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