Я хочу иметь блок R в RMarkdown, который включает код из внешнего файла.
Я хочу включить файл, а не встраивать его содержимое напрямую, поскольку внешний файл содержит код, который совместно используется различными проектами и сценариями, и я хочу быть уверенным, что каждая программа использует самую последнюю версию. Для этого предусмотрена опция чанка code = ...
.
Следующий метод отлично работает , если Я вяжу весь документ. Однако, если я пытаюсь запустить отдельные чанки в Rstudio (как требуется во время разработки), я получаю сообщение об ошибке "Error in readLines(include_file) : object 'include_file' not found"
.
Как мне заставить это работать, чтобы я мог запускать чанки из Rstudio?
Воспроизводимый пример:
Сначала создайте несколько включаемых файлов
write_lines("x = 1", 'include_1.r')
write_lines("x = 2", 'include_2.r')
write_lines("x = 3", 'include_3.r')
write_lines("x = 4", 'include_4.r')
Затем поместите следующее в файл .Rmd
---
title: "Untitled"
output: html_document
---
```{r setup}
knitr::opts_chunk$set(echo = TRUE)
include_file = list.files(pattern = '^include_.+[Rr]$')
include_file = include_file[which.max(file.info(include_file)$mtime)]
```
I want to embed an R code from a file like this:
```{r, code = readLines(include_file)}
```
Then use the objects from the include file
```{r}
print(x)
```
Это то, что выводится выглядит, когда я вяжу весь документ