トップ 履歴 一覧 Farm ソース 検索 ヘルプ RSS ログイン

キワめる!Rでプレゼンテーション


キーワード

最終更新時間:2019年10月13日 18時01分12秒
アフィリエイト・広告について
プライバシーポリシー

この記事は "Mastering R presentations" を翻訳し、日本語特有の補足を加えたものです。元の記事がCC-BY-NC-SAなので、本記事のライセンスもそれに準じます。なお、文中の注釈は、日本語訳に際して筆者が追加したものです。[1]

以下で示す、それぞれのスライドのソースコードは https://github.com/ltl-manabi/R/tree/master/RPresentation にあります。

はじめに

あなたは、シンプルで再現性があり、それでいてエレガントなプレゼンテーションの作り方を知りたいですか? この記事では、最も使いやすく、分析手法のカバー範囲が広い統計解析ソフトウェア "R" を使い、プレゼンテーションを様々なフォーマットで出力する方法を紹介します。今回は、Rのプログラム、LaTeXの数式、グラフィックス、そしてインタラクティブなコンテンツを含むプレゼンテーションを、Beamer、PowerPoint、HTMLで出力する方法を取り上げます。

このチュートリアルを終えれば、あなたはRStudioRMarkdownを使い、独自のプレゼンテーションを作成できます。RMarkdownについて詳しくなくても心配ありません。なぜなら、RStudioと組み合わせれば、とても簡単に理解して利用できるからです。

私達が技術系のプレゼン資料を作成する際、PowerPointやLaTeXなど、ツールに関して様々な選択肢があります。しかし、私達がグラフやプログラムコード、文章からなる完全なプレゼンテーションを作りたい時、往々にして、それらのツールで見栄えを調整する方法や、コンテンツを追加するための簡単な方法を調べることに多くの時間を費やします。そこで、あなたにRがそれらのツールの優れた代替となることを示したいと思います。Rの最大の特徴は、柔軟性とシンプルさであり、少しの作業で、再現性のある優れたプレゼンテーションを作成できます。これを実現するには、RMarkdownを使います。しかし、RMarkdownとは何でしょうか?

RMarkdownとは何か?

Markdownは、Webベースのコンテンツを作成する際に使われ、文書を書く側にも読む側にも扱いやすいマークアップ言語です。Markdownの特徴は、シンプルな文法と、様々なフォーマットで出力できることです。[2]

 Markdownのキホン

以下に、Markdownの主な記法を抜粋して紹介します。

見出し

# H1 # 第1レベルの見出し
## H2 # 第2レベルの見出し
### H3 # ...
#### H4
##### H5
###### H6

また、以下の記法も利用できます。

第1レベルの見出し
======
第2レベルの見出し
-----

強調

*斜体* または _斜体_
**太字** または __太字__
~~取消~~

リスト

1. ひとつ目の項目
2. ふたつ目の項目
# 訳注: すべて 1. としても、自動的に連番として出力してくれます

* 順序なしリスト
- 順序なしリスト
+ 順序なしリスト

リンク

[インラインリンク](https://www.google.co.jp/)

画像

インラインでの画像挿入
![代替テキスト]("画像URI")

コードとシンタックスハイライト

インラインでの `コード` は `バッククォート` で囲む

コードブロックは
```python
s = "Pythonのシンタックスハイライト"
print(s)
```

引用

> 電子メールでの引用スタイルと同じ

数式

$-b \pm \sqrt{b^2 - 4ac} \over 2a$

上記の基本的な記法に加え、表や水平線、ビデオへのリンク (埋め込み)、HTMLコードを直接記述することなどができます。Markdownについてより詳しく知りたい方は、https://docs.microsoft.com/ja-jp/contribute/how-to-write-use-markdownhttps://qiita.com/Qiita/items/c686397e4a0f4f11683d などを参考にしてください。[3]

RでMarkdown記法を使ってドキュメントを作成する際は、拡張子 .Rmd を使用します。優れた (英語の) RでMarkdownを使用するための参考書として、R Markdown: The Definitive Guideがあります。[4]RMarkdownで作成した文書は、以下のような様々なフォーマットで出力できます。[5]

  • ドキュメント: HTML、LaTeX (ソース / PDF)、Microsoft Word、Tufte式ハンドアウト
  • インタラクティブなドキュメント: htmlwidgetsやShinyを使ったWebアプリ
  • ダッシュボード: (様々な) ゲージ、数値表示機能を備えたhtmlwidgetsやShiny、Storyboardを使ったダッシュボード
  • 書籍: HTML、PDF、EPUB
  • Webサイト
  • JSS[6]、R Journal各誌のテンプレートを使った論文、スケルトン (テンプレート)、履歴書 (CV)

次のURLでは、RMarkdownを使ったいくつかのサンプルを見ることができます。https://rmarkdown.rstudio.com/gallery.html また、次のチートシート (英語) はRMarkdownの記法についてよくまとまっています。https://rmarkdown.rstudio.com/lesson-15.html (訳注: 日本語では https://qiita.com/9en/items/93634351d34bff4771f8 にまとまっています。)

RMarkdownをはじめよう

まず、RRStudioを入手しましょう。[7]また、rmarkdownパッケージを導入する必要があるため、R / RStudioのコンソールに以下のように入力します。

install.packages("rmarkdown")

最近のRStudioでは、"File → New File → R Presentation" とメニューを辿ってプレゼンテーションを作成できます。この操作で作成されるのは、.Rpres 形式のドキュメントで、極めてシンプルなプレゼンテーションスライドです。ただし、私は (.Rpres は置いておいて) さっそく次の方法に目を移すことをおすすめします。そのほうが、より柔軟で見栄えの良いプレゼンテーションを作成できます。



.Rpres 形式で作成できるプレゼンテーション

ということで、次に "File → New File → RMarkdown" を選択しましょう。そして、オプションとして "Presentation" を指定します。(訳注: タイトルや著者を適当に指定してください。)

すると、以下のようなソースコードが自動的に生成されます。

最終的な出力形式によって、output オプションの指定は変わります。この記事では、以下の形式を取り上げて紹介します。

  • ioslides: output: ioslides_presentation
  • slidy: output: slidy_presentation
  • beamer: output: beamer_presentation

RMarkdownファイルの作成

 ヘッダー

RMarkdownドキュメントのヘッダー部で、プレゼンテーションのタイトルや作者、日付、出力形式を指定します。

---
title: "RMarkdownでプレゼンテーション"
author: "タナカケンタ"
date: "2019/10/5"
output: ioslides_presentation
---

output などのオプションについては、インデントしてさらにオプションを指定できます。

---
title: "RMarkdownでプレゼンテーション"
author: "タナカケンタ"
date: "2019/10/5"
output:
  ioslides_presentation:
    incremental: false
    self-include: true
---

 コンテンツ

ヘッダーを記述したら、Rコードや数式、図表、ビデオなどプレゼンテーションで表現したいコンテンツを記述しましょう。以下に、それぞれの要素をどのように記述すればよいか示します。

Rチャンク

テキストや見出しに加え、RMarkdownドキュメントには、Rコードを挿入し、コンパイル (knit) 時に実行できます。これは、Rチャンクと呼ばれます。Rチャンクをドキュメントに挿入するには、RStudioのツールバーから "Insert" - "R" を選択します。あるいは、キーボードショートカットとしてWindowsでは "Ctrl + Alt + I" を、macOSでは "Cmd + Option + I" も使えます。

Rチャンクには、表の挿入や文字列の出力、図版に関するオプションが多数あります。オプションを指定するには、{r} とカッコで囲んだ中に記述します。例えば、{r echo=TRUE} といったようにします。このオプションを指定しない場合、デフォルトではコードはドキュメントに出力されません (訳注: 結果のみ出力されます)。複数指定する場合はカンマで区切ります。他に、以下のようなオプションがあります。

  • cache: チャンクの実行結果をキャッシュするか (デフォルトは TRUE)
  • cache.path: キャッシュを保存するディレクトリのパス (デフォルトは ./cache)
  • child: チャンク実行時に他に読み込むファイルを指定します (デフォルトは NULL)
  • collapse: 実行結果を1つの出力ブロックにまとめるか (デフォルトは FALSE)
  • comment: 結果に付与するコメント文字列のフォーマット (デフォルトは ##)
  • dependson: 依存関係にある他のチャンクを指定します。キャッシュ使用時のみ有効です (デフォルトは NULL)
  • echo: Rコードを出力するか (デフォルトは FALSE)
  • engine: チャンクで実行するエンジン (言語) を指定します (デフォルトは R)
  • error: エラーメッセージを表示して先に進む (TRUE) か、処理を中断する (FALSE) か (デフォルトは FALSE)
  • eval: チャンク内のコードを実行するか (デフォルトは TRUE)
  • message: 実行結果のメッセージを表示するか (デフォルトは TRUE)
  • results="asis": 実行結果をそのまま表示します
  • results="hide": 実行結果を表示しません
  • results="hold": 実行結果をチャンクの最後にまとめて表示します
  • tidy: 結果をtidyに表示するか (デフォルトは FALSE)
  • warning: 警告メッセージを表示するか (デフォルトは TRUE)
  • fig.align: 図の横方向の配置を指定します (left, right, center, デフォルトは default)
  • fig.cap: 図のキャプションを指定します (デフォルトは NULL)
  • fig.height, fig.width: 図のサイズをインチで指定します
  • highlight: ソースコードのシンタックスハイライトを有効化するか (デフォルトは TRUE)
  • include: チャンクをドキュメントに組み込むか (デフォルトは TRUE)[8]

詳細は、https://yihui.name/knitr/options/, https://bookdown.org/yihui/rmarkdown/r-code.html などを参考にしてください。

 数式

あなたのプレゼンテーションで、MathJaxライブラリを使った数式を使用できます。LaTeXとMathMLを使って記述した数式を、HTMLドキュメントに挿入できます。ヘッダーで以下のようにオプションを指定して、MathJaxの動作を制御できます。

---
title: "Example"
output:
  ioslides_document:
    mathjax: オプション
---
  • default: 都度RStudio社の運営するサーバーにアクセスし、JavaScriptライブラリを取得します
  • local: MathJaxをローカルにダウンロードし、使用します。このオプションを指定する場合、合わせて self_containedオプションを FALSE にする必要があります
  • URLを指定すると、その場所に配置されたMathJaxにアクセスし、使用します
  • null: MathJaxを使用しません

例えば、ローカルにMathJaxをダウンロードして使用するには、以下のように指定します。

---
title: "Example"
output:
  ioslides_document:
    mathjax: local
    self_contained: false
---

独自に運用するサーバーに配置したMathJaxライブラリを使う場合は、以下のように指定します。

---
title: "Example"
output:
  ioslides_document:
    mathjax: "http://example.com/MathJax.js"
---

訳注: 数式を記述し、コンパイルすると以下の出力が得られます。

---
title: "RMarkdownでプレゼンテーション"
author: "タナカケンタ"
date: "2019/10/6"
output: ioslides_presentation
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

# 数式の例

$$
R^{2} = 1 - \frac{\sum_{i} (y_{i} - \hat{y}_{i})^{2}}{\sum_{i} (y_{i} - \overline{y})^{2}}
$$

$$
AIC = n \left( \log \left( 2 \pi \frac{S_{e}}{n} \right) + 1 \right) + 2 (p + 2)
$$

 

表をプレゼンテーションに挿入する方法は、大きく4つあります。ひとつ目は、Markdownで直接記述する方法です。Markdownでは、コロンでセルの揃え位置を指定します。

| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is      | right-aligned | $1600 |
| col 2 is      | centered      |   $12 |
| zebra stripes | are neat      |    $1 |

Rコードの実行結果を表として出力するには、knitr、xtable、stargazerなどのパッケージを使います。

# knitr::kable() 関数
data <- faithful[1:4, ]
knitr::kable(data, caption = 'Table with kable')

# xtable::xtable() 関数
data <- faithful[1:4, ]
print(xtable::xtable(data, caption = "Table with xtable"), type = "html")

# stargazer::stargazer() 関数
data <- faithful[1:4, ]
stargazer::stargazer(data, type = "html", title = "Table with stargazer")

訳注: ioslides_presentation オプションでスライドを作成すると、以下のような出力が得られます (明らかにイケてないですが…)。

また、slidy_presentation オプションでは、以下のようになります。

 インタラクティブなグラフィックス

Rでは、インタラクティブなグラフィックスを作成するための様々なパッケージが提供されています。Highcharterhtmlwidgetsといったパッケージが有名です。ここでは、highcharterパッケージを用いた例を示します。

library(magrittr)
library(highcharter)
highchart() %>% 
  hc_title(text = "Scatter chart with size and color") %>% 
  hc_add_series_scatter(mtcars$wt, mtcars$mpg,
                        mtcars$drat, mtcars$hp)

訳注: 元の記事にあるコードではグラフィックスが表示されないため、別の例に差し替えました。


プレゼンテーションフォーマット

ここまで、RMarkdownドキュメントの個別の要素についてみてきましたが、ここからはどのような出力フォーマットが利用できるか紹介します。

 ioslides

ioslidesは、シンプルさを追求したフォーマットです。ioslidesによるプレゼンテーションでは、以下のキーを使い、表示モードを切り替えられます。

  • f: フルスクリーンモード
  • w: ワイドスクリーンモードの切り替え
  • o: スライドの一覧表示
  • h: コードのシンタックスハイライト
  • p: ノート表示

また、箇条書きを順に表示する (クリックするたび1つずつ表示される) には、ヘッダーに以下のように記述します。

---
output:
  ioslides_presentation:
    incremental: true
---

その他、スライドのサイズ (縦横比)、フォントサイズ、ページの切り替えスピードなどをヘッダーに記述しておけます。切り替えスピードは、秒数を直接指定するか、default, slower, fasterのいずれかを指定します。

---
output:
  ioslides_presentation:
    widescreen: true
    smaller: true
    transition: slower
---

背景に画像を使用する場合、CSSを変種する必要なく、以下のように指定できます。

## {data-background="my_background.png"}

スライドにスタイルを反映して表示したい場合は、CSSを作成し、指定します。

---
output:
  ioslides_presentation:
    css: styles.css
---

ioslidesは、カスタマイズ可能な項目が少ないことが不便な点として挙げられます。このチュートリアルの最後の部分で、CSSを編集してカスタマイズする方法を紹介しています。



ioslidesで作成したプレゼンテーションの例 (上: 画像、下: 埋め込みHTML)

 slidy

slidyは、ioslidesよりも柔軟に、見栄えをカスタマイズできるテーマです。ここでは、slidyの特徴をピックアップして紹介します。
slidyで作成したプレゼンテーションは、表示中に以下のキーボードショートカットで操作できます。

  • C: プレゼンテーションの目次を表示します
  • F: フッターの表示・非表示を切り替えます
  • A: スライドの表示を1ページと全ページ (一覧) で切り替えます
  • S: フォントサイズを縮小します
  • B: フォントサイズを拡大します

また、ヘッダーにオプションを指定することで、フォントサイズを調整できます。

---
output:
  slidy_presentation:
    font_adjustment: -1
---

他にも、durationfooter オプションを指定し、slidyの興味深い機能を利用できます。[9]

slidyのテーマ

slidyでは、Bootstrapフレームワークによるテーマを使用できます。標準で、Bootswatchライブラリで公開されているテーマのうち、以下を使用できます。

  • default
  • cerulean
  • journal
  • flatly
  • darkly
  • readable
  • spacelab
  • united
  • cosmo
  • lumen
  • paper
  • sandstone
  • simplex
  • yeti

また、独自のCSSを使いたい場合は、theme オプションに NULL を指定します。シンタックスハイライトは、highlight オプションで設定できます。サポートされるスタイルは、以下の通りです。

  • default
  • tango
  • pygments
  • kate
  • monochrome
  • espresso
  • zenburn
  • haddock
  • textmate

シンタックスハイライトを無効にしたい場合は、NULL を指定します。



slidyで作成したプレゼンテーションの例 (上: 画像、下: 埋め込みHTML)

 Beamer

Beamerは、LaTeXでプレゼンテーションスライドを作成するためのクラスです。柔軟な数式表現が可能なため、アカデミアの世界では広く使われています。RMarkdownを使えば、LaTeXに関する深い知識がなくても、Beamerプレゼンテーションを作成できます。

まずはじめに、LaTeX環境をインストールしましょう。訳注: 日本語LaTeX環境はTeX Liveで導入できます。

RMarkdownにおけるプレゼンテーションでも、LaTeXで作成するのと同じBeamerテーマが使用できます。Beamer Theme Matrixなどを見て、好みの組み合わせを選びましょう。

訳注: 日本語を含むRMarkdownファイルをコンパイルするには、以下のような設定が必要です。詳細はノート: R Markdown: pdf編や、R Markdown + XeLaTeX で日本語含め好きなフォントを使って PDF を出力する - Atusy's blogなどを参照してください

---
output:
  beamer_presentation:
    latex_engine: "xelatex"
    theme: "Berkeley"
    colortheme: "wolverine"
    fonttheme: "structurebold"
header-includes:
  - \usepackage{zxjatype}
  - \usepackage[ipa]{zxjafont}
---

Beamerで作成したプレゼンテーションの例

 reveal.js

ここまで挙げてきた方法の他に、reveal.jsxaringanパッケージを使って、プレゼンテーションスライドが作成できます。reveal.jsは、標準でも豊富なテーマやトランジション (スライド切り替え) が使用でき、また縦長のスライドを作成したり、Webサイトをスライド内にインクルードしたりと、高い柔軟性で広く知られています。ここでは、reveal.jsでプレゼンテーションスライドを作る方法の概要を紹介します。

はじめに、revealjsパッケージをインストールしましょう。

install.packages("revealjs")

すると、RStudioでRMarkdownファイルを作成する際のオプションに、"Reveal.js Presentation" が追加されます。

reveal.jsで作成したプレゼンテーションスライドには、いくつかの便利なキーボードショートカットがあります。fキーとESCキーでフルスクリーン / スライド一覧の切り替えができます。Bまたは "." キーを押すと、プレゼンテーションを中断して黒い画面を表示します。sキーはプレゼンターモードに切り替わります。また、Altキーを押しながらクリックすると、その周辺をズームします。
訳注: プレゼンターモード、ズームについては、reveal.jsのプラグインを読み込む必要があります。以下のコード例を参照してください。

---
output:
  revealjs::revealjs_presentation:
    incremental: true
    self_contained: false
    reveal_plugins: ["zoom", "notes"]
    slide_level: 1
---

さらに、プレゼンテーションの見た目を様々にカスタマイズできます。reveal.jsで提供されているテーマは以下の通りです。

  • default
  • simple
  • sky
  • beige
  • serif
  • solarized
  • blood
  • moon
  • night
  • black
  • league
  • white

また、シンタックスハイライトのスタイルは以下のものがサポートされています。無効にするには、NULL を指定します。

  • default
  • tango
  • pygments
  • kate
  • monochrome
  • espresso
  • zenburn
  • haddock
---
output:
  revealjs::revealjs_presentation:
    incremental: true
    self_contained: false
    reveal_plugins: ["zoom", "notes"]
    slide_level: 1
    theme: sky
    highlight: tango
---

スライド中のテキストを中揃えにしたい場合は、center オプションを true にします。また、トランジションや背景を変更できます。トランジションは transition オプションで指定し、パターンとして以下のものがあります。[10]

  • default
  • fade
  • slide
  • convex
  • concave
  • zoom
  • none
---
output:
  revealjs::revealjs_presentation:
    incremental: true
    self_contained: false
    reveal_plugins: ["zoom", "notes"]
    slide_level: 1
    theme: "sky"
    highlight: "tango"
    transition: "fade"
---

また、個別のページにトランジションを指定したい場合は、以下のように見出しの後ろに指定します。

## Use a zoom transition {data-transition="zoom"}

背景についても同様に、プレゼンテーション全体に反映させたい場合はヘッダーに、個別に指定したい場合は見出しの後ろに、data-background オプションを指定します。

## CSSで背景色指定 {data-background=#ff0000}

## 背景全体に画像を使用する {data-background="background.jpeg"}

## 背景全体に動画を使用する {data-background-video="background.mp4"}

## 背景全体にWebページを使用する {data-background-iframe="https://example.com"}

最後に、slide_level オプションを取り上げます。reveal.jsには "2D-presentation" という概念があり、縦方向 (セクション) と横方向 (トピック) にスライドを整理して提示できます[11]。デフォルトでは、レベル1の見出し (#) をセクション、レベル2の見出し (##) をトピックとして扱います。セクションはキーボードの左右で、トピックは上下で切り替えます。

reveal.jsはここで取り上げた以外にも、モバイルデバイスへの対応や柔軟な背景の設定など、様々な機能を有します。詳しくは、パッケージのドキュメントなどを参照してください。



reveal.jsで作成したプレゼンテーションの例 (上: ほぼデフォルト設定、下: テーマ、トランジション等設定)

 xaringanパッケージによる "Ninja Presentation"

最後に、xaringan (写輪眼[12]) パッケージを紹介します。xaringanパッケージは、remark.jsライブラリを用いたプレゼンテーションを作成できます。このパッケージは、CSSを熟知した "忍者"[13] のために作成されました。xaringanパッケージで作成されるプレゼンテーションスライドは、Webサーバで実行することを念頭に置いており、ファイル単体で完結させたいという用途には向きません。また、htmlwidgetsライブラリとの相性もあまり良くありません。

xaringanパッケージを使うには、まずインストールします。

install.packages("xaringan")

Githubのレポジトリからインストールすることもできます。

devtools::install_github("yihui/xaringan")

すると、RStudioでRMarkdownファイルを作成する際のオプションに、"Ninja Presentation" が追加されます。

選択してOKを押すと、テンプレートが展開されます。ヘッダー部分は以下のようになっています。

---
title: "Presentation Ninja"
subtitle: "with xaringan"
author: "Yihui Xie"
institute: "RStudio, Inc."
date: "2016/12/12 (updated: `r Sys.Date()`)"
output:
  xaringan::moon_reader:
    lib_dir: libs
    nature:
      highlightStyle: github
      highlightLines: true
      countIncrementalSlides: false
---

ioslidesやslidyと比べて、少し複雑で変わったオプションが並んでいますが、これらを適切に指定することで、プレゼンテーションスライドの見た目を大きく変えることができます。

  • css: 独自のCSSのパスを指定します
  • self_contained: 単体で完結するHTMLとして出力するか
  • seal: ヘッダーに指定した情報からタイトルスライドを作るか
  • yolo: TRUEとすると、Karl Broman教授の写真がいろいろなところに表示される、というよくわからない機能です。また、0-1の間の数値を指定すると、出現頻度をコントロールできます。list(time = 回数, img = 画像ファイル) とすると、任意の画像も表示できます。
  • chakra: remark.jsへのパスを指定します。
  • nature: remark.jsのデフォルト設定 (画面の縦横比など) を変更します。詳細はremark.jsのドキュメントを参照してください。

他に、remark.jsが提供する機能として、nature オプションで指定する自動再生やカウントダウンタイマーの機能があります。以下のように指定できます。

---
output:
  xaringan::moon_reader:
    nature:
      autoplay: 30000
      countdown: 30000
---

さらに、シンタックスハイライトされたコードの特定行を色付けする highlightLines や、独自に定義したマクロを指定する beforeInit オプションなど、豊富なカスタマイズ要素があります。
訳注: xaringanパッケージの使い方については、以下の資料も参照してください。

独自のCSSを使用する

ここまで紹介してきたいくつかのプレゼンテーションスタイルには、独自のCSSを使って見栄えをカスタマイズできるものがあります。ブラウザに表示される各要素をどのように特定し、カスタマイズすればよいか紹介します。[14]

以下に、基本的なCSSの例を示します。ここでは、背景色の変更と、reveal.js使用時の見出しと本文の色、H1要素のフォントサイズを変更しています。

body {
  background: #111;
  background-color: #111; }

.reveal {
  color: #fff; }
  
.reveal h1,
.reveal h2,
.reveal h3,
.reveal h4,
.reveal h5,
.reveal h6 {
  color: #fff;
 }

.reveal h1 {
  font-size: 4.77em; }

これらをファイルとして保存し、RMarkdownのヘッダー部でパスを指定して使用します。

プレゼンテーションをエクスポートする

HTMLで作成したプレゼンテーションをPDFにエクスポートするには、Webブラウザの機能などを使います。例えば、Google Chromeでは[印刷] - [PDFに保存]でエクスポートできます。また、他にエクスポート (≒外部公開) の方法として、RPubsやGitHubに公開することができます。これらを利用するには、あらかじめユーザー登録が必要です。RPubsにエクスポートするには、RStudioのメニューから[More] - [Publish] - [RPubs]と選択します。訳注: なお、RPubsにエクスポートする場合、ファイル1つで完結しないといけないため、self_contained: true とする必要があります。

GitHubの場合、GitHub Pagesの仕組みを使い、レポジトリをWebページとして公開できます。

サンプルコード

(訳注: 最後の最後に、という感じですが) ここで、reveal.jsを使ったシンプルな例を紹介します。

---
title: "RMarkdownでプレゼンテーション"
author: "タナカケンタ"
date: "2019/10/6"
output:
  revealjs::revealjs_presentation:
    incremental: true
    self_contained: false
    reveal_plugins: ["zoom", "notes"]
    slide_level: 1
    theme: "sky"
    highlight: "tango"
    transition: "fade"
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = FALSE)
```

# 数式の例{#equation}

$$
R^{2} = 1 - \frac{\sum_{i} (y_{i} - \hat{y}_{i})^{2}}{\sum_{i} (y_{i} - \overline{y})^{2}}
$$

$$
AIC = n \left( \log \left( 2 \pi \frac{S_{e}}{n} \right) + 1 \right) + 2 (p + 2)
$$

<aside class="notes">
発表者にのみ表示されるノートです。
</aside>

# 表の例 (1) Markdown{#table_markdown}

| Tables        | Are           | Cool  |
| ------------- |:-------------:| -----:|
| col 3 is      | right-aligned | $1600 |
| col 2 is      | centered      |   $12 |
| zebra stripes | are neat      |    $1 |

# 表の例 (2) kable{#table_kable}

```{r results="asis"}
data <- faithful[1:4, ]
knitr::kable(data, caption = "Table with kable")
```

# 表の例 (3) xtable{#table_xtable}

```{r results="asis"}
data <- faithful[1:4, ]
print(xtable::xtable(data, caption = "Table with xtable"), type = "html")
```

# 表の例 (4) stargazer{#table_stargazer}

```{r results="asis"}
data <- faithful[1:4, ]
stargazer::stargazer(data, type = "html", title = "Table with stargazer")
```

# インタラクティブなグラフィックス (highcharter){#highcharter}

```{r message=FALSE, warning=FALSE, fig.width=8}
library(magrittr)
library(highcharter)
highchart() %>% 
  hc_title(text = "Scatter chart with size and color") %>% 
  hc_add_series_scatter(mtcars$wt, mtcars$mpg,
                        mtcars$drat, mtcars$hp)
```

# インクリメンタルな箇条書き{#incremental_bullet}

* 1つ目の項目
* 2つ目の項目
* 3つ目の項目

# コード例{#code_example}

```{r echo=TRUE, eval=FALSE}
library(magrittr)
library(highcharter)
highchart() %>% 
  hc_title(text = "Scatter chart with size and color") %>% 
  hc_add_series_scatter(mtcars$wt, mtcars$mpg,
                        mtcars$drat, mtcars$hp)
```

このコードをRStudio上で適当なファイル名 (*.Rmd) で保存し、[knit]ボタンを押すと、以下のようなスライドが作成されます。

まとめ

RStudioは、あなたがシンプルな記法で、インタラクティブなコンテンツを含む洗練されたプレゼンテーションスライドを作成するための環境を提供します。加えて、ドキュメントをテンプレートして使用することで、再現性の高いプレゼンテーションスライドを何度も作成できます。私 (著者) は、RStudio + RMarkdownによるプレゼンテーションスライド作成が、従来のツールについての優れた代替手段だと考えます。あなたもそう思ってくれたら嬉しいです :)

  • [1]ホントは「キワめる!」というほどの内容じゃないんですが、原文のタイトルが "Mastering" なので…
  • [2]正確には、それはPandocの機能であって、Markdownの利点ではないですが。
  • [3]日本語のWebサイトに差し替えました。
  • [4]日本語では、"RMarkdown入門" https://kazutan.github.io/kazutanR/Rmd_intro.html などが参考になります。
  • [5]このへん、原文を書いた人もあまりわかってない感じがします。
  • [6]Journal of Statistical Softwareという論文誌にRに関する論文が多く投稿されます。
  • [7]RとRStudioに関する日本語のガイドとしては https://kazutan.github.io/JSSP2018_spring/intro_rstudio.html などが参考になります。
  • [8]FALSEにすると、実行するがドキュメントには表示させない、というようにできます。
  • [9]どのような指定が可能かは、https://bookdown.org/yihui/rmarkdown/slidy-presentation.html#footer-elements を参照してください。
  • [10]data-backgroundオプションで背景に画像を使用する場合は、background_transitionで指定します。
  • [11]このセクション、トピックという表現は、説明のために訳者が独自に名付けたものです。
  • [12]漫画NARUTOに由来するんでしょうねぇ。
  • [13]海外では、何かに非常に詳しい人をNinjaと言うようです。https://el.jibun.atmarkit.co.jp/rails/2011/01/ninjahakcer-bc7.html
  • [14]といいつつ、ごく簡単な例だけ示して終わっています…。

関連ページ: R言語を学ぶための参考書籍リスト
カテゴリ: [R, データ分析, プレゼンテーション]