2016-06-14 2 views
0

Одна из вещей, которые мне нравятся в RMarkdown/ioslides, - это то, как легко динамически создавать контент. Можно ли перейти на следующий уровень и динамически генерировать слайды?Динамическое создание слайдов для RMarkdown/ioslides

Например, предположим, что мы хотим создать колоду, используя набор данных mtcars. Можно ли создать колоду, которая генерировала - динамически - слайды, отображающие лошадиную силу (л.с.) и вес (вес) с помощью слайда для каждого количества цилиндров? Предположим, что мы хотим разрешить любое количество цилиндров и динамически создавать слайд для каждого возможного числа.

Очевидно, что это упрощенный пример, но для создания приложений в документах RMarkdown это было бы очень полезно. Должен ли я создать внешний скрипт? Какие другие методы я мог бы использовать?

ответ

3

Конечно, вы можете сгенерировать синтаксис Markdown с помощью R-кода, чтобы запустить новый слайд и добавить контент. Хитрость заключается в использовании результатов = "asis" в параметрах куска. Ниже приведен минимальный пример.


title: "Generate slides in R" 
output: 
    ioslides_presentation 
--- 


```{r, echo = FALSE, results = "asis"} 
for(i in unique(mtcars$cyl)){ 

    cat("\n\n## Cyl = ", i, "\n\n") 
    cat("Here is a plot: \n\n") 
    plot(hp ~ wt, data = subset(mtcars, cyl == i)) 

} 

```