如何根据列表在 R 中制作幻灯片?

How to make slide deck in R based on a list?

我在 R 方面有一定的经验。我正在尝试制作用于远程学习的抽认卡幻灯片。我需要在我的屏幕上显示幻灯片供我的学生阅读,并快速浏览它们。

我有一个大约 4,000 个单词的列表,分为不同的类别。我希望能够过滤类别,并构建一个幻灯片组,每张幻灯片都有一个词。

天上掉馅饼的目标将是一个 Shiny 应用程序,其中包含 select 类别的下拉列表,然后 selection select 的复选框将哪些词包含在幻灯片中,然后生成 html 个幻灯片。

下面是我使用的单词列表的示例:

词类 |词 |指数


做空 CVC |禁止 | 1

做空 CVC |蝙蝠 | 1

做空 CVC |可以 | 1

我建议您首先使用 Slidy 或其他一些 HTML 演示文稿格式输出制作 R Markdown 文档。只需在其中包含一两张幻灯片,然后播放直到格式正确。

然后编写一个 R 函数,将 header 和所需数量的幻灯片输出到一个文件,然后对该文件调用 rmarkdown::render()。您的 R 函数可以将所有特征作为输入,例如您最终将放入 Slidy 应用程序的 Category

为了帮助您入门,这里有一个 two-slide Slidy 演示文稿:

---
output: slidy_presentation
---
##

<div style="font-size:300%;position:absolute;top:50%;left:50%;transform: translate(-50%,-50%)">
ban
</div>
##

<div style="font-size:300%;position:absolute;top:50%;left:50%;transform: translate(-50%,-50%)">
bat
</div>

前3行是header;之后,幻灯片以 ## 标记开始。如果您想对其进行自定义,请参阅 Slidy 文档。

通过 R 函数实现此功能后,您可以编写一个 Shiny 应用程序,在菜单中提供选项,然后调用该函数。

编辑补充:由于种种原因,发现xaringan不太适合这个,所以我把所有东西都换成了Slidy。下面的函数使用了 Slidy.

makeSlideDeck <- function(words, outfile = "slides.html") {
  header <- '---
output: slidy_presentation
---'
  slide <- '##

<div style="font-size:300%;position:absolute;top:50%;left:50%;transform: translate(-50%,-50%)">
WORD
</div>'

  lines <- character(length(words) + 1)
  lines[1] <- header
  for (i in seq_along(words))
    lines[i + 1] <- sub("WORD", words[i], slide, fixed = TRUE)
  filename <- paste0(tools::file_path_sans_ext(outfile), ".Rmd")
  writeLines(lines, filename)
  rmarkdown::render(filename)
}

运行 像这样:

dat <- c("ban","bat","can")
makeSlideDeck(dat)

它将生成 slides.Rmd 并将其处理成 slides.html,其中将包含您的幻灯片。