【发布时间】:2019-11-30 05:03:55
【问题描述】:
我有一个有点复杂的 R 函数(不同部分指的是我想解释的各种方程。) 我想使用 R Markdown 编写代码,但我需要能够解释文档中函数的不同部分。有点像文学编程。
我想知道是否可以将函数定义拆分为不同的代码块,或者在函数定义中插入markdown cmets?
我希望最终结果看起来像这样:
complicated = function(x) {
我在示例中使用 x^2,所以它是数学,但很短。这是实际的 R 代码:
x^2
}
这不起作用:
``` {r}
complicated = function(x) {
```
explain the function with some math $x^$.
``` {r}
x^2
}
```
以下实际上确实工作:
``` {r chunk1, echo=FALSE}
complicated=function(x) {
x^2
}
```
``` {r chunk1, echo=1:2, eval=F}
```
In the complicated function I use x^2 as an example.
虽然有点棘手,因为如果函数中的行发生变化,我必须重新编辑所有内容。同样在 Rmd 文件中,您实际上看不到 cmets 描述的代码。
注意:
也许有可能以某种方式将相关块写入文件而不进行评估,然后读取文件?我还没想出办法……
【问题讨论】:
-
{r, eval = T, echo = F}应该可以工作,这将打印块中的代码,但不会运行它。 -
谢谢。然后我是否必须第二次包含该函数,它在哪里被评估但不包含在输出中?我更喜欢只拥有一次,但如果这不可能,我可以将它包含在 cmets 中并且不进行评估,然后运行一次。
-
为什么不让它同时评估和打印呢?我不明白你的用例。
-
我不想同时评估和打印它,因为我想在中间插入一个格式化的注释。 (请参阅上面我编辑的问题)。但我可以评估和打印非封闭函数。
-
您不能将一个函数拆分为多个块。在一个块中定义函数,在后续块中逐行描述。
标签: r r-markdown