RStudioでスライド作成

前田和寛(@kazutan)
2015/2/14

HiRoshima.R #3

icon

自己紹介

所属

比治山大学短期大学部

Twitter

@kazutan

キーワード

#ビールうめぇ

kazutan

今日のお話

  • Rでスライド作成…?
  • R Markdownダイジェスト
  • Rpresの作り方
  • 出力・プレゼン
  • FAQ

免責事項

ペース速いです

  • 量が多く、時間の制約上
  • 細かい部分は参考サイトを紹介します

現時点での内容です

  • RStudioまわりの開発スピード速すぎ
  • 多分半年後にはまた機能が追加・変更されてますので
  • 動作確認状況
    • R-3.1.2
    • RStudio-0.98.1102
    • Ubuntu-14.04LTS

Rでスライド作成…?

なんでそんなことできるの…?

いいからデモだ!!

  • RStudioを起動
  • File → New file → R presentation
  • 適当な場所に適当な名前で作成
  • そのままPreview
  • Presentationウィンドウの右上のMore → View in Browser

…なにこれ?

どうやって操作すんの?

左右キーで送れます。あとEscキーで遠目ビューになります

これブラウザだよ?

htmlスライドといわれるものです

上のが邪魔

ブラウザの全画面モード、もしくはfキーで全画面モードになります

テキストデータからどうやってできるの?

Javascriptを利用して実現しています

R Presantation(Rpres)とは

R Markdown(Rmd)とよく似た記法で簡単にスライドを作成するためのもの

  • 基本はMarkdown(RMarkdown)と一緒
  • 覚えることが少なくてすぐに使える!便利!

まずはRmdを理解→Rpresへ

R Markdownダイジェスト

ダイジェストなので一気に駆け抜けます

まーくだうん…?

マークアップ言語の一つ

  • 主にHTMLに変換するために使われる
  • 文書構造を意識してればさくっと作れる
  • アウトラインを意識して作る人には作りやすい
  • htmlタグをそのまま受け付ける

気をつけるポイント

  • 色々なところで拡張されてて"方言"みたいなのがたくさんある
  • 細かいところの設定は難しい
  • CSS(スタイルシート)を扱うには厳しい(面倒)

見出し要素(h1 - h6)

# タイトル扱い(h1)
## 大見出し扱い(h2)
### 中見出し扱い(h3)

タイトル扱い(h1)

大見出し扱い(h2)

中見出し扱い(h3)

※Rpresでは###以下を推奨します。

箇条書きについて

箇条書きは-などを使います。

- 箇条書きa1
- 箇条書きa2
  - 箇条書きb1
  - 箇条書きb2
- 箇条書きa3
  • 箇条書きa1
  • 箇条書きa2
    • 箇条書きb1
    • 箇条書きb2
  • 箇条書きa3

その他の要素について

実は、RStudioにはMarkdown Quick Referenceがついてます!(デモ)

Rのコード埋め込み(Chunk)

# ```{r}
# (ここにRのコード記述)
# ```

例えば…

# ```{r}
# mean(1:10)
# ```

実行すると…

mean(1:10)
[1] 5.5

※ このコード内の#は以降無視してください

チャンク名とチャンクオプション

チャンクオプションで色々設定できます。

# ```{r チャンク名, オプション名=値, ...}

チャンク名は、わかりやすいのをつけとくと後々便利です。
オプションは色々ありますが、主なものを紹介します

echoオプション

コードを表示するかどうかを指定できます(コードは評価します)

# ```{r エコーなし, echo=FALSE}
# mean(1:10)
# ```
[1] 5.5
# ```{r エコーあり, echo=TRUE}
# mean(1:10)
# ```
mean(1:10)
[1] 5.5

evalオプション

コードを評価するかどうかを指定(コードは表示します)

# ```{r 評価なし, eval=FALSE}
# mean(1:10)
# ```
mean(1:10)
# ```{r 評価あり, eval=TRUE}
# mean(1:10)
# ```
mean(1:10)
[1] 5.5

includeオプション

チャンクの出力をするかどうかを指定(コードは評価、前処理向け)

# ```{r 出力一切なし, include=FALSE}
# mean(1:10)
# ```
# ```{r 出力あり, include=TRUE}
# mean(1:10)
# ```
mean(1:10)
[1] 5.5

resultオプション

コードの評価結果の出力方法を指定 細かいところは省略しますが、表出力でうまく出てこない時などは以下のようにasisを指定してください。

# ```{r result='asis'}

その他のオプション

  • エラーや警告の処理
    • warningオプションやerrorオプションをFalseにすると非表示に。
  • プロットなどのサイズ
    • fig.widthやfig.heightオプションで画像ファイルのサイズ指定可能(インチ)
    • out.widthやout.heightオプションでレポート内でのサイズ指定可能(htmlならpx単位)

Tips

プロジェクトを毎回使おう

RStudoを使うなら、毎回ちゃんとプロジェクトを作って作業しましょう
特に窓機は文字コードの問題があるので、プロジェクトの設定でUTF-8にしてください

チャンク名はなるべくつけよう

RStudioでは、スクリプトウィンドウの左下に各チャンクに飛べるショートカットがついてます
ちゃんと名前をつけてるとこれで一発です

Markdownのエディタとして使いこなそう

RStudioはMarkdownエディタとしてもなかなか使い勝手がいいです
折りたたみ機能もあるのでアウトラインエディタとしても使えます(デモ)

Rpresの作り方

やっと本題です。

スライド1枚分の書式

#
# (スライドタイトル)
# ====================
# スライドの内容
# スライドの内容
# スライドの内容
#

ポイント

  • =がスライド区切りの意味
    • 上にある行をタイトルとして読込
    • 下にある行をコンテンツとして読込
    • =は3つ以上ならいくつでもOK
  • スライドタイトルの上には1行あけてください

1枚目スライドについて

# (プレゼンタイトル)
# =====================
# author: (名前を入力)
# date: (日付を入力)
#

他のスライドとの違い

  • 1枚目は自動的にタイトルスライドとなります
    • =行以下にあるのはスライド全体に関する設定
    • デフォルトでautherとdateが入ります
    • この2つはそのままスライド表示

スライドのレイアウト(type)について

#
# (スライドタイトル)
# ====================
# type: (ほげほげ)
#

(ほげほげ)のところでレイアウトを指定

type: section

タイトルスライド。明示的に使うことはほぼなし。

type: sub-section

セクションタイトルスライド。意識して使いましょう。

type: prompt, type:alert

背景色が標準とは変わるスライド。

  • prompt: 問いかけなどで出すと有効?
  • alert: 警告などで有効

"type: prompt"のサンプル

オリオン!

重富!

"type: alert"のサンプル

うわぁぁぁ

2カラム型のレイアウト

#
# (スライドタイトル)
# ===================
# (スライドの左半分)
# (スライドの左半分)
# ***
# (スライドの右半分)
# (スライドの右半分)
#

内容を左右に分割

  • ポイントは***
    • これより上が左
    • これより下が右
  • このスライドみたいなレイアウトに

これで基本はOK

  • ここまでの知識で、Rpresによるスライド作成はとりあえずできます
  • さらなる話はまた後で

出力とプレゼン

本番に向けて

htmlファイルへの出力

プレゼン用のhtml作成手順

  1. RpresファイルをまずはPreview
  2. プレビューされた部分の右上の「More」をクリック
  3. 「Save As Web Page…」を選択
  4. ファイル名とフォルダを指定して保存

ポイント

  • 画像ファイルも組み込まれます(これ1つでOK)
  • Rの出力なども大丈夫です
  • cssも中に書き込まれます
  • オフラインでもOK

プレゼン方法

スライドショーの開始

  1. ChromeかFirefoxで開く
  2. キーボードのfキーを押す(全画面モード)

プレゼン中の操作

  • 左右キーでスライドが移動
  • 画面底(すごく薄い)にプログレスバー(クリックでジャンプ可)
  • キーボードのoキーで遠目モード
  • 終了するときはEscキー(通常モード)

スライドの公開

自分のWebサイトに設置

先ほど説明した方法で作成したhtmlをWebサーバーに置いてください

RPubsで公開

  1. RpresファイルをまずはPreview
  2. プレビューされた部分の右上の「More」をクリック
  3. 「Publish to RPubs…」を選択
  4. あとは指示にしたがってUpload(要RPubsアカウント)

FAQ

印刷やpdfにはできないの?

現状厳しいです

  • 実は印刷(pdf化)のためのcssは組み込まれてます
  • しかし実際にやってみるとうまく書式があたらず崩れます

対策

  • 他のスライド作成ツールへ移植
    • Rmarkdownで作成
    • slidifyパッケージで作成
  • これらでならChromeからpdf化(印刷)可能
    • ただしタイトルスライドが真っ白に…orz

スライドサイズが小さいor大きい

タイトルスライド(1枚目)で設定可能

# (プレゼンタイトル)
# =====================
# width: 1280
# height: 800

数字はお好みで。なおオート調整は以下の通り:

# (プレゼンタイトル)
# =====================
# autosize: true
#

テーマを変えることはできるの?

Reveal.jsのテーマを流用できますが…

  • このスライド機能を実現してるのはこのJavascript
    • 実際にはR向けに修正されてます
  • デザインについては「reveal.js theme」でおググりください
    • ただし、そのままでは使えません
    • 結局自前でカスタムしたcssファイルが必要です
  • 近日手続きをWebにまとめますので…

ちょこっとカスタマイズしたい

カスタムcssファイルを読み込ませます

  • 自動で読み込ませたい場合
    • Rpresと同じディレクトリに同一名のcssファイル作成
    • そのcssファイルに設定を記述
    • このスライドの場合:
.reveal section>h3 {
  color: blue;
}
  • cssに関する知識がどうしても必要です
    • これも近日まとめます…

さいごに

参考書籍・サイト

Enjoy!

Web: http://kz-md.net/

Twitter: @kazutan

kazutan