Создайте приложение с R-кодом в rmarkdown / knitr

Можно ли получить весь код в приложении. Скажем, у меня есть два фрагмента документа, а затем текст.

```{r, echo=TRUE}
x <- 4+5
x
```  
Above is X output.

```{r, echo=TRUE}
y <- 22+325
y
```   

Above is Y output.

И затем я хочу, чтобы весь код был в приложении, но показан так, как если бы я поместил eval=FALSE в кусок.

Что-то вроде этого

```{r, SHOW_ALL_CODE=TRUE}
```

Ожидаемый результат:

Chunk_1
x <- 4+5  
x

Chunk_2  
y <- 22+325  
y

person TKN    schedule 02.11.2015    source источник


Ответы (3)


knitr::purl() может извлечь весь код R из файла уценки в сценарий R. Вы можете добавить это как приложение.

## appendix

```{r code=readLines(knitr::purl('~/path/to/file.Rmd', documentation = 0)), eval = FALSE}

```
person Thierry    schedule 02.11.2015
comment
Это действительно хорошо. Можно ли разделить куски? Или дать название? Теперь мне нужно указать заголовок в коде, используя # comments. - person TKN; 03.11.2015
comment
Установите documentation = 1. Тогда заголовки разделов будут добавлены в виде комментариев. Подробнее см. ?purl. - person Thierry; 04.11.2015

Другая возможность:

### Appendix 
```{r, ref.label=knitr::all_labels(),echo=TRUE,eval=FALSE}
```

как предлагает хороший пример Ихуи

person Will Townes    schedule 04.03.2016
comment
Лучший ответ, так как не нужно указывать путь к файлу. - person Alexandre Gattiker; 21.04.2017

Вы можете использовать ссылку на свои начальные фрагменты, но затем измените параметры:

main text

```{r blah, echo = FALSE}
summary(cars)
```

appendix

```{r blah2, ref.label='blah', eval = FALSE}
```

Что даст:

введите описание изображения здесь

person jeremycg    schedule 02.11.2015
comment
Время от времени я хочу / хочу поместить код некоторых функций в приложение к отчету. Мне известно, что исходный вопрос касался всех фрагментов кода. И, в конечном счете, эти ответы не содержат всех фрагментов. Это интуитивно понятный способ добавления элементов в приложение к Rmd-документу, позволяющий писать окружающий текст. Другие ответы показывают, как это сделать программно. У Ихуи есть сообщение о работе с knitr :: all_labels и подмножестве или использовании appendix = TRUE. Для моего будущего меня: подумайте, что вы хотите делать с кодом в приложении! Это может увести вас далеко. - person Ray; 11.05.2020