1

knitr::read_chunk功能非常适合引用文档中的块。例如,给定一个带注释的 R 脚本:

# test.R

## ---- scatter ----------
x <- rnorm(100)
y <- rnorm(100)
plot(y ~ x, pch = 19)

## ---- hists ----------
par(mfrow = c(1, 2))
hist(x)
hist(y)

...然后我可以在文档中引用块:

# main.Rnw

\documentclass{article}

\begin{document}
<<setup>>=
library(knitr)
read_chunk("test.R")
@

\begin{figure}
<<scatter>>=
@
\end{figure}

\begin{figure}
<<hists>>=
@
\end{figure}
\end{document}

我的问题是:有没有办法做到这一点?我正在寻找一种方法来做类似的事情:

\begin{figure}
    \Sexpr{knit_chunk("scatter")}
\end{figure}

......或者可能是......

\Sexpr{"<<scatter>>"}

...这将具有与以下完全相同的效果:

\begin{figure}
<<scatter>>=
@
\end{figure}

不一定knitr——也许这可以通过bookdown文本引用来完成?


奖励:如果我也可以在 R 脚本中设置块选项,那就更棒了。我知道knitr::spin(和knitr::spin_child)让你做这样的事情:

# test.R 

#+ scatter, fig.width = 3, fig.height = 3
plot(y ~ x)

如果块引用有类似的语法,那就太棒了 - 即如果这可行:

# test.R

## ---- scatter, fig.width = 3, --------
plot(y ~ x)

或者,也许对此的解决方案是以某种方式knitr::spin/knitr::spin_child,但仅限于特定的块?

4

0 回答 0