R Markdownのちょいネタ集

Tokyo.R #53 LT

kazutan

2016/4/30

はじめに

自己紹介

icon

今日のおはなし

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

補足

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

タブ機能

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

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

実装してみた

# {.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!

三ヶ月後…

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

フローティングTOC

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

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

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

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

新規Rmd作成関数

Rmdファイル、作るの面倒

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

ないならば作る、そ(ry

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

RmdでWebサイト作成

Webサイトまでやってよ

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

できました

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

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

はい、ありました

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

Enjoy!

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