Я пытаюсь сделать свой первый Rmarkdown Параметризованный отчет . В первом разделе будет загружен набор данных из одного из двух источников (и внутренняя или внешняя база данных) на основе параметров «dataSource», выбранных пользователем. Требуемый Rscript / код отличается для разных опций.
title: "Optionally DL from external vs internal database"
output: html_document
params:
dataSource:
label: "Select the database for download:"
value: IntD
input: radio
choiceNames: [External DB, Internal DB]
choiceValues: [ExtD, IntD]
inline: TRUE
Следующий код работает, но есть ли способ опционально запустить весь Rchunk на основе выбора параметров (например, некоторый код, помещенный непосредственно в заголовок Rchunk)?
```{r downloadData, include=TRUE}
#Can I run different rchunk or code based on the params$dataSource value??
#Can this be done directly in the Rchunk header?
if(params$dataSource=="IntD"){
source(here::here("R", "Intdownload.R")
}else{
source(here::here("R", "Extdownload.R")
}
```
Другие варианты, которые я исследовал (и работаю над пониманием того, как реализовать), перечислены ниже. Есть ли какой-либо из этих лучших вариантов, чтобы выяснить, может ли код загрузки использоваться в других документах отчетов / Rscript / Rmarkdown? Я немного озадачен тем, когда это может быть лучше, чем использование 'source'?
- создание отдельных фрагментов во внешнем скрипте Rscript и использование read_chunk для чтения во внешнем скрипте , а затем вызов каждого блока на основе выбранной опции params.
- Создание отдельного документа Rmarkdown для загрузки данных, а затем вызов его в этом документе Rmarkdown с использованием child . Позволяет ли эта опция по существу создавать 2 отчета (1 путем вызова дочернего документа Rmarkdown, а другой - для основного документа Rmarkdown) при использовании объектов, созданных в дочернем документе в основном документе?