Как получить файл R Markdown, например `source('myfile.r')`?

У меня часто есть основной файл R Markdown или файл Knitr LaTeX, в котором я являюсь источникомкакого-либо другого файла R (например, для обработка данных). Однако я подумал, что в некоторых случаях было бы полезно, чтобы эти исходные файлы были их собственными воспроизводимыми документами (например, файл R Markdown, который не только включает команды для обработки данных, но также создает воспроизводимый документ, объясняющий обработку данных). решения).

Таким образом, я хотел бы иметь такую ​​команду, как source('myfile.rmd')в моем основном файле R Markdown. который будет извлекать и получать весь код R внутри фрагментов кода R myfile.rmd. Конечно, это приводит к ошибке.

Работает следующая команда:

```{r message=FALSE, results='hide'}
knit('myfile.rmd', tangle=TRUE)
source('myfile.R')
```

где results='hide'можно опустить, если требуется вывод. То есть Knitr выводит R-код из myfile.rmdв myfile.R.

Тем не менее, это не кажется совершенным:

  • это приводит к созданию дополнительного файла
  • он должен появиться в своем собственном фрагменте кода, если требуется контроль над отображением.
  • Это не так элегантно, как просто source(...).

Итак, мой вопрос: Есть ли более элегантный способ получения кода R для файла R Markdown?

74
задан Paul Hiemstra 10 June 2012 в 12:28
поделиться