В R-уценке вы не можете определять объекты (например, функции) по частям (afaict). Одной из альтернатив будет невидимое определение функции, а затем использование неисполняемых фрагментов кода для обсуждения частей. Но мне не нравится эта альтернатива, так как она удваивает усилия и увеличивает вероятность наличия различных функций.
Одна альтернатива - определить четкие маркеры в функции, захватить тело функции и разделить по этим маркерам. Попробуйте это:
---
title: test markdown
---
```{r echo = FALSE, include = FALSE}
my_function <- function(x,y){
test <- x + seq(1,10) ###BREAK###
# normal comment
output <- test + y ###BREAK###
return(output)
}
my_function_body <- strsplit(
paste(head(capture.output(print.function(my_function)), n = -1), collapse = "\n"),
"###BREAK###[\n\r]*")[[1]]
```
```{r echo = FALSE, include = TRUE, comment = ''}
cat(my_function_body[[1]])
```
Then I would like to use Markdown to describe the second part of the function
```{r echo = FALSE, include = TRUE, comment = ''}
cat(my_function_body[[2]])
```
Now the third/last part of the function
```{r echo = FALSE, include = TRUE, comment = ''}
cat(my_function_body[[3]])
```
And then I would like to apply the function
```{r}
my_function(1,2)
```
And the whole of the function (excluding the markers):
```{r echo = FALSE, include = TRUE, comment = ''}
cat(
gsub("###BREAK###", "",
paste(head(capture.output(print.function(my_function)), n = -1), collapse = "\n"))
)
```
Это выглядит как: