R Markdownのちょいネタ集

Hijiyama.R #4

kazutan

2016/5/28

1 はじめに

1.1 自己紹介

icon

1.2 今日のおはなし

  • みんな大好きR Markdown
  • でもそのまま使うだけだともったいない
  • 新機能やちょいネタを時間の限りご紹介

1.3 補足

  • 今回の内容は以下のGitHubリポジトリにまとめています
    kazutan/HijiyamaR4
  • 以下の環境で動作を確認しています
    • プレビュー版RStudio(v0.99.1197)
    • github版rmarkdown(v0.9.6.10)
    • Mac, Ubuntu環境

2 R Markdownとは?

2.1 Rからドキュメント生成

  • Rからドキュメント、スライド、レポートを作成
    • markdownがコア
    • その中にRチャンクでコードを挿入

output formats

2.2 どんなのが作れる?

type detail
ドキュメント html, pdf, docx, odt, rtf, md
スライド ioslides, reveal.js, slidy, Beamer
レポート Tufte Handout, dashboard
その他 Web site, books(pdf, epub), etc…

2.3 どんな感じで作るの?

3 タブ機能

3.1 タブ機能、ほしくないです?

  • R MarkdownではBootstrapが組み込まれている
  • Bootstrapにはタブが実装されている
  • なんとかなるんじゃね?

3.2 実装してみた

# {.tab-content}

<ul class="nav nav-tabs">
  <li class="active">
  <a href="#tab1" data-toggle="tab">tab1</a>
  </li>
  <li role="presentation">
  <a href="#tab2" data-toggle="tab">tab2</a>
  </li>
</ul>

## tab1 {#tab1 .tab-pane .active}
hogehoge. hogehoge.


## tab2 {#tab2 .tab-pane}
wasshoi! wasshoi!

3.3 三ヶ月後…

  • 本家が(もっとエレガントに)実装した
    • javascriptを組み込んでタブ部分を自動生成するっぽい
    • サンプルはこちら
    • 見てる方向は近かった、それでいいじゃないですか
    ## タブセクションのタイトル見出し {.tabset}
    (タブ前の内容)
    ### タブその1
    (タブその1の内容)
    ### タブその2
    (タブその2の内容)

4 フローティングTOC

4.1 見出しリスト、いいですよね

  • YAMLにtoc: trueでサクッとできる
    • でもトップにしか出てこない
    • できればサイドメニューとして出てくれたら…
    • てかそれ、Bootstrapにあるってことは…

4.2 新機能として追加されました

  • YAMLに以下の2行を加えるだけでOK
    • 詳しくは本家ドキュメント参照
    • サンプルはこちら
    • 日本語見出しの場合には注意が必要
    • なんかBootstrapの機能をmdで実装できる環境になってきた気が
---
output:
  html_document:
    toc: true
    toc_float: true
---

5 新規Rmd作成関数

5.1 Rmdファイル、作るの面倒

  • Rmdファイルを作成するには…
    • RStudioでボタンをポチポチ
    • (たぶん)あるんだろうけど、YAMLは結局書き直すことが多い
    • 関数の引数で色々指定して、一気に作れるといいのに

5.2 ないならば作る、そ(ry

  • zousan::new_rmd_ja()
    • devtools::install_github("kazutan/zousan")
    • オプションで色々指定できます
    • 完全に私の好みで作ってます
    • feather requestやpull requestおまちしてます
      • でも他のちゃんとした自作パッケージに移行するかも…

6 RmdでWebサイト作成

6.1 Webサイトまでやってよ

  • R Markdownには豊富な機能が満載
  • もうどうせならWebサイトまで作ってよ
    • ひとつひとつrenderするの面倒
    • できればRStudioでポタン一つでできないの?

6.2 できました

  • 以下の環境が必要です
    • RStudioプレビュー版
    • rmarkdownパッケージのgithub版
  • 細かい手順はrmarkdown本家ドキュメント
    • ポイントは_site.yml
    • RStudioのProject Option…build toolsをWebsiteに設定
      • これでサイトを一発でbuildできるように
    • サンプルはこちら
    • ソースコードはこちら
      • ここに現在マニュアル作成中…

7 ダッシュボードつくりたい

7.1 はい、ありました

  • flexdashboardパッケージ
    • 簡単にダッシュボードレイアウトを作成可能
    • devtools::install_github("rstudio/flexdashboard")
      • Rmdのテンプレートから新規作成
    • 詳細は本家のサイト参照
    • サンプルはこちら
    • ソースコードはこちら

8 いちいちknitせずに確認したい

8.1 R notebookができました

  • なんと、Rmdの編集ウィンドウ上で出力を表示できるようになります
    • RStudioのプレビュー版、rmarkdownのgithub版が必要
    • Jupyter notebookと比較されますが別物です
    • (デモ)

8.2 Enjoy!

  • 今回のネタに興味がある方は@kazutanもしくはr-wakalangの#rmarkdown
  • 本発表のgithubリポジトリ
    • kazutan/HijiyamaR