+ - 0:00:00
Notes for current slide
Notes for next slide

量化金融与金融编程

L03 rmarkdown 与 Quarto


曾永艺

厦门大学管理学院


2022-09-30

1 / 25

Your data has a story.

3 / 25

Your data has a story.

Yes!

3 / 25

Your data has a story.

Yes!


Tell it with R markdown / Quarto.

3 / 25

Your data has a story.

Yes!


Tell it with R markdown / Quarto.

🤔 Why?

3 / 25

{{R Markdown}} -> rmarkdown 2.16

Dynamic Documents for R

4 / 25

{{R Markdown}} -> rmarkdown 2.16

Dynamic Documents for R

  • R Markdown 为数据科学提供了一种统一的写作框架,可以集成代码、输出结果和文本说明

  • R Markdown 文档是可复现的(reproducible

  • R Markdown 主体使用 Markdown 撰写,并利用 {{Pandoc}}knitr 后的 文档转换为目标输出格式并进行样式渲染,支持包括 html、PDF、Word、幻灯片、仪表盘图表、shiny 应用、期刊论文、书籍、网站等静态或动态的展示

4 / 25

{{R Markdown}} -> rmarkdown 2.16

Dynamic Documents for R

  • R Markdown 为数据科学提供了一种统一的写作框架,可以集成代码、输出结果和文本说明

  • R Markdown 文档是可复现的(reproducible

  • R Markdown 主体使用 Markdown 撰写,并利用 {{Pandoc}}knitr 后的 文档转换为目标输出格式并进行样式渲染,支持包括 html、PDF、Word、幻灯片、仪表盘图表、shiny 应用、期刊论文、书籍、网站等静态或动态的展示

4 / 25

{{      1.1.251}}

Open source tools for scientific and technical publishing

5 / 25

{{      1.1.251}}

Open source tools for scientific and technical publishing

5 / 25

{{      1.1.251}}

Open source tools for scientific and technical publishing

6 / 25

{{      1.1.251}}

Open source tools for scientific and technical publishing


  • Create dynamic content with Python, R, Julia, and Observable.

  • Author documents as plain text markdown or Jupyter notebooks.

  • Publish high-quality articles, reports, presentations, websites, blogs, and books in HTML, PDF, MS Word, ePub, and more.

  • Author with scientific markdown, including equations, citations, crossrefs, figure panels, callouts, advanced layout, and more.

6 / 25

>> YAML 文件头

  • YAML 文件头处于两个 --- 之间
  • YAMLYAML Ain't Markup Language,易于读写的层次化数据
  • Quarto 使用 YAML 文件头来提供 metadata 以及控制渲染和样式等方面的参数
8 / 25

>> YAML 文件头

  • YAML 文件头处于两个 --- 之间
  • YAMLYAML Ain't Markup Language,易于读写的层次化数据
  • Quarto 使用 YAML 文件头来提供 metadata 以及控制渲染和样式等方面的参数
---
title: "Penguins, meet Quarto!"
subtitle: 企鹅遇上Quarto!💘
author: "曾永艺"
date: today
format:
html:
toc: true
code-fold: true
editor: visual
---
8 / 25

>> YAML 文件头

  • YAML 文件头处于两个 --- 之间
  • YAMLYAML Ain't Markup Language,易于读写的层次化数据
  • Quarto 使用 YAML 文件头来提供 metadata 以及控制渲染和样式等方面的参数
---
title: "Penguins, meet Quarto!"
subtitle: 企鹅遇上Quarto!💘
author: "曾永艺"
date: today
format:
html:
toc: true
code-fold: true
editor: visual
---
---
title: "量化金融与金融编程"
subtitle: "L03 `rmarkdown` 与 Quarto"
author: "<br>曾永艺"
institute: "厦门大学管理学院"
date: "<br>2022-09-30"
output:
xaringan::moon_reader:
css: [../libs/zen-styles-v2.2.css]
lib_dir: libs
chakra: ../libs/remark-latest.min.js
nature:
ratio: '16:9'
highlightLines: true
countIncrementalSlides: false
---

?xaringan::moon_reader

8 / 25

>> Markdown 文本         ✊ {{rstudio-visual-markdown-editing}} 🤩

  • .Rmd/.Qmd/.ipynb 等支持用{{扩展的 Markdown 语法}} 来写说明性文本(是用来格式化纯文本文件的轻量级语法,其设计哲学就是使得文本既容易写又容易读)。
9 / 25

>> Markdown 文本         ✊ {{rstudio-visual-markdown-editing}} 🤩

  • .Rmd/.Qmd/.ipynb 等支持用{{扩展的 Markdown 语法}} 来写说明性文本(是用来格式化纯文本文件的轻量级语法,其设计哲学就是使得文本既容易写又容易读)。

9 / 25

>> 代码块

  • 插入代码块:使用编辑器工具栏上的 Insert 按钮 | 手工输入代码段标记符```{r}``` | Ctrl+Alt+I
  • 设置代码块标签名和{{代码块选项}}(也可在通过 knitr::opts_chunk$set() 或者 YAML 文件头设置全局选项——同个选项多处设置时,局部设置优先),RStudio有智能补全功能
  • 编写 代码
  • 运行代码:点击按钮或使用快捷键 Ctrl+Shift+Enter | Ctrl+Enter
10 / 25

>> 代码块

  • 插入代码块:使用编辑器工具栏上的 Insert 按钮 | 手工输入代码段标记符```{r}``` | Ctrl+Alt+I
  • 设置代码块标签名和{{代码块选项}}(也可在通过 knitr::opts_chunk$set() 或者 YAML 文件头设置全局选项——同个选项多处设置时,局部设置优先),RStudio有智能补全功能
  • 编写 代码
  • 运行代码:点击按钮或使用快捷键 Ctrl+Shift+Enter | Ctrl+Enter

10 / 25

>> 代码块

  • 插入代码块:使用编辑器工具栏上的 Insert 按钮 | 手工输入代码段标记符```{r}``` | Ctrl+Alt+I
  • 设置代码块标签名和{{代码块选项}}(也可在通过 knitr::opts_chunk$set() 或者 YAML 文件头设置全局选项——同个选项多处设置时,局部设置优先),RStudio有智能补全功能
  • 编写 代码
  • 运行代码:点击按钮或使用快捷键 Ctrl+Shift+Enter | Ctrl+Enter

  • 行内代码
这份数据中包含了`r nrow(diamonds)`颗钻石的信息。其中只有`r nrow(diamonds) - nrow(smaller)`颗
钻石大于2.5克拉。其余钻石的分布如下图所示。
10 / 25

>> 工作流

[0. 创建项目文件夹]

  1. 打开新的 .Qmd 文档:File > New File > Quarto Document ...

    • Document | Presentation | Interactive

    • 适当设置,如 Title、Author、输出格式等

  2. 存盘 ↔ 根据需要编辑修改模板文档

  3. Render .Qmd 文档,生成目标输出文档

  4. 在 RStudio 窗口中预览结果

  5. 在 Background Jobs 窗口中检查文档创建过程记录

  6. 使用和 .Qmd 文档一并存储的目标输出文档

  7. 将报告发布到网络服务器(可选步骤)


12 / 25

参考资料与课后作业

18 / 25

相信同学们现在对 rmarkdownQuarto 有了初步的认识,下面列出一些学习资料,感兴趣的同学们可进一步学习精进 🏆

19 / 25

>> 课后作业

自由组队,两人一组,共同完成以下课后作业:

20 / 25

>> 课后作业

自由组队,两人一组,共同完成以下课后作业:

🕐 从 L02 课件中挑出 3 ~ 4 个你们感兴趣的数据可视化代码段,就其制作两种类型的展示文档:

  1. {{Quarto|HTML}}{{prettydoc}} -> 📂 L03_HW/docs/

  2. {{Quarto|Revealjs}}{{xaringan}} -> 📂 L03_HW/slides/

20 / 25

>> 课后作业

自由组队,两人一组,共同完成以下课后作业:

🕐 从 L02 课件中挑出 3 ~ 4 个你们感兴趣的数据可视化代码段,就其制作两种类型的展示文档:

  1. {{Quarto|HTML}}{{prettydoc}} -> 📂 L03_HW/docs/

  2. {{Quarto|Revealjs}}{{xaringan}} -> 📂 L03_HW/slides/

🕑 记得多尝试各种选项设置,同时在文档内加上相应的说明性文字(如解释代码或输出图形,其余内容可自由发挥,丰俭由人啦,😁)

20 / 25

>> 课后作业

自由组队,两人一组,共同完成以下课后作业:

🕐 从 L02 课件中挑出 3 ~ 4 个你们感兴趣的数据可视化代码段,就其制作两种类型的展示文档:

  1. {{Quarto|HTML}}{{prettydoc}} -> 📂 L03_HW/docs/

  2. {{Quarto|Revealjs}}{{xaringan}} -> 📂 L03_HW/slides/

🕑 记得多尝试各种选项设置,同时在文档内加上相应的说明性文字(如解释代码或输出图形,其余内容可自由发挥,丰俭由人啦,😁)

🕒 作业共同署名(姓名 + 姓名)

20 / 25

>> 课后作业

自由组队,两人一组,共同完成以下课后作业:

🕐 从 L02 课件中挑出 3 ~ 4 个你们感兴趣的数据可视化代码段,就其制作两种类型的展示文档:

  1. {{Quarto|HTML}}{{prettydoc}} -> 📂 L03_HW/docs/

  2. {{Quarto|Revealjs}}{{xaringan}} -> 📂 L03_HW/slides/

🕑 记得多尝试各种选项设置,同时在文档内加上相应的说明性文字(如解释代码或输出图形,其余内容可自由发挥,丰俭由人啦,😁)

🕒 作业共同署名(姓名 + 姓名)

🕓 确认两份文档运行无误后将文件夹📂 L03_HW 打包为 .zip 格式压缩文档,由其中一位同学于2022年10月5日22:00前将压缩包提交至 {{坚果云链接}}

20 / 25










本网页版讲义的制作由 R 包 {{xaringan}} 赋能!
21 / 25

>> {{tufte0.12}}

23 / 25

>> {{xaringan0.26}}

Creating HTML5 presentations with remark.js through R Markdown.

24 / 25

>> {{xaringan0.26}}

Creating HTML5 presentations with remark.js through R Markdown.

24 / 25

>> {{xaringan0.26}}

Creating HTML5 presentations with remark.js through R Markdown.

24 / 25

>> {{xaringanthemer0.4.2}}   和 {{xaringanExtra0.7.0}}

# install.packages("xaringanthemer")
---
output:
xaringan::moon_reader:
css: xaringan-themer.css
---
```{r xaringan-themer, include=FALSE, warning=FALSE}
library(xaringanthemer)
style_duo_accent(
primary_color = "#1381B0", secondary_color = "#FF961C",
inverse_header_color = "#FFFFFF",
header_font_google = google_font("Josefin Sans"),
text_font_google = google_font("Montserrat", "300", "300i"),
code_font_google = google_font("Fira Mono")
)
```
25 / 25

>> {{xaringanthemer0.4.2}}   和 {{xaringanExtra0.7.0}}

# install.packages("xaringanthemer")
---
output:
xaringan::moon_reader:
css: xaringan-themer.css
---
```{r xaringan-themer, include=FALSE, warning=FALSE}
library(xaringanthemer)
style_duo_accent(
primary_color = "#1381B0", secondary_color = "#FF961C",
inverse_header_color = "#FFFFFF",
header_font_google = google_font("Josefin Sans"),
text_font_google = google_font("Montserrat", "300", "300i"),
code_font_google = google_font("Fira Mono")
)
```

xaringanExtra: A playground of enhancements and extensions for xaringan

  • Add an overview of your presentation with tile view 🗺
  • Make your slides editable 📝
  • Share your slides in style with share again 📼
  • Broadcast your slides in real time to viewers with broadcast 📡
  • Scribble on your slides during your presentation with scribble 👩‍🎨
  • Announce slide changes with a subtle tone 🔊
  • Animate slide transitions with animate.css 📽
  • Add tabbed panels to slides with panelset 🗂
  • Add a logo to all of your slides with logo 💌
  • Add a search box to search through your slides with search 🔍
  • Use the Tachyons CSS utility toolkit 🏗
  • Add a live video feed of your webcam 🤳
  • Add one-click code copying with clipboard 📋
  • Always play gifs from the start with freezeframe ⏸️
  • Fit your slides to fill the browser window 📐
  • Add extra CSS styles 😎
25 / 25
Paused

Help

Keyboard shortcuts

, , Pg Up, k Go to previous slide
, , Pg Dn, Space, j Go to next slide
Home Go to first slide
End Go to last slide
Number + Return Go to specific slide
b / m / f Toggle blackout / mirrored / fullscreen mode
c Clone slideshow
p Toggle presenter mode
t Restart the presentation timer
?, h Toggle this help
oTile View: Overview of Slides
Esc Back to slideshow