是否可以使用 knitr 将 R 函数拆分为多个块(出于文档原因)?以下是 MWE:
\documentclass{article}
\begin{document}
Part1 gives salutation.
<<part1>>=
hello <- function(x){
print("Hi")
@
Part2 adds the name.
<<part2>>=
print(x)}
@
\end{document}
答案1
有一个chunk
名为 的选项eval
,它控制代码是否实际由 R 评估。如果将其设置为FALSE
,则代码将不会被评估,因此原则上您可以输入任何您想要输入的内容。
此外,作为易晖在评论中指出,您可以使用<<part3, ref.label=c('part1', 'part2')>>=
来结合您的part1
和part2
并实际评估代码。
在下面的 MWE 中,我添加了这样一个设置part3
,以便不出现任何内容,因为您已经拥有第 1 部分和第 2 部分中显示的代码。然后,如果您愿意,您可以添加一个实际上将参数传递给您定义的函数的地方。echo
FALSE
part4
\documentclass{article}
\begin{document}
Part1 gives salutation.
<<part1, eval=FALSE>>=
hello <- function(x){
print("Hi")
@
Part2 adds the name.
<<part2, eval=FALSE>>=
print(x)}
@
<<part3, ref.label=c('part1', 'part2'), echo=FALSE>>=
@
<<part4>>=
hello("Dan Wright")
@
\end{document}
答案2
答案3
ref.label 选项解决了这个问题。以下是实际示例。
\documentclass{article}
\begin{document}
Part1 gives salutation.
<<part1,eval=FALSE>>=
hello <- function(x){
print("Thanks")
@
Part2 adds the name.
<<part2,eval=FALSE>>=
print(x)}
@
<<part3,echo=FALSE,ref.label=c('part1','part2')>>=
@
<<executefunction>>=
hello('Adam and Yihue')
@
\end{document}