如何基于列表在R中制作幻灯片?

问题描述 投票:0回答:1

我在R方面有一定的经验。我试图制作用于远程学习的抽认卡幻灯片。我需要在屏幕上显示幻灯片以供学生阅读,然后快速翻阅。

我有大约4,000个单词的列表,分为不同的类别。我希望能够按类别进行过滤,并构建一个在每张幻灯片上都包含一个单词的幻灯片平台。

天空中的目标将是一个Shiny应用程序,具有一个下拉菜单以选择类别,然后是一个复选框选择以选择要在幻灯片中包含哪些单词,然后生成一个html幻灯片。

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

单词类别|字|索引


[缩短CVC |禁令| 1

[缩短CVC |蝙蝠| 1

[缩短CVC |可以1

r slideshow ioslides
1个回答
0
投票

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

然后编写一个R函数,该函数将标题和所需的幻灯片输出到一个文件,然后在该文件上调用rmarkdown::render()。您的R函数可以将最终要放入Slidy应用程序中的Category之类的所有特征作为输入。

[入门,这是两张幻灯片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>

前三行是标题;之后,幻灯片以##标记开始。如果要对其进行自定义,请参见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,其中将包含您的幻灯片。

© www.soinside.com 2019 - 2024. All rights reserved.