Upgrade to Pro — share decks privately, control downloads, hide ads and more …

おまえは万物をRSTUDIOで書ける/YOU CAN WRITE EVERYTHING ON RSTUDIO

S-Katagiri
September 19, 2020

おまえは万物をRSTUDIOで書ける/YOU CAN WRITE EVERYTHING ON RSTUDIO

本文中にハイパーリンクが張られているため, WEBブラウザではなくPDFファイルをダウンロードしてご覧になることを推奨します
Tokyo.R #88 発表資料です

https://github.com/Gedevan-Aleksizde/rmdja

2020/10/17: リンクを修正

S-Katagiri

September 19, 2020
Tweet

More Decks by S-Katagiri

Other Decks in Programming

Transcript

  1. おまえは万物を RStudio で書ける
    Katagiri, Satoshi (ill-identified)
    Tokyo.R #88, 2020/9/19 (10/17 更新)
    1

    View Slide

  2. (10/17: 発表後追記) rmdja パッケージの場所
    • 本スライドで紹介している rmdja はリポジトリとし
    て独立させました
    • 使い方についてここでドキュメントを公開していま

    • 縦書き文書, 論文, Python スクリプト埋め込み機能
    を新たに補強しています
    2

    View Slide

  3. Нужны новые формы. Новые формы нужны, а
    если их нет, то лучше ничего не нужно.
    新しいフォーマットが必要なんですよ. 新しいフォー
    マットが. それがないというなら, いっそ何もないほう
    がいい. — A. チェーホフ『かもめ』
    https://www.youtube.com/watch?v=SaRhIQB7_wo
    3

    View Slide

  4. 目次
    自己紹介
    おまえは RStudio を使っているか?
    おまえはもう R Markdown をつかっているか?
    おまえは RStudio で Python を書いているか?
    おまえは bookdown でインターン用資料を作ったか?
    おまえは Jupyter{Book} を知っているか?
    まとめ
    4

    View Slide

  5. 自己紹介

    View Slide

  6. よくきたな
    おれは毎日膨大な量のエラーを吐いている
    5

    View Slide

  7. 自己紹介
    • 新米機械学習エンジニア
    • Web 広告会社
    • Twitter ID: ill_identified
    • ブログ: ill-identified diary
    • 勤務先の採用ページ
    6

    View Slide

  8. 最近の活動 (1/2)
    • 主語の大きな発表
    •『計量経済学と機械学習の関係 –AI はさだめ, さだめ
    は反事実 (転送用)』(Tokyo.R #80)
    • 今月中にもう 1 つ公開予定
    • 主語の変な発表
    •『三国志で学ぶデータ分析』(Japan.R 2019)
    •『飯野山 (讃岐富士) は正規分布らしいのでパラメー
    タを推定する』
    7

    View Slide

  9. 最近の活動 (2/2)
    社内外で発表
    ぽきた w
    魔材ンゴ!? ありえん良さみが深い w
    二郎からのウォッカで優勝せえへん?
    そり! そりすぎてソリャンカになっ
    た w
    そりでわ、無限に練りをしまつ
    おやしみ~
    Katagiri, Satoshi
    July 1, 2020 1
    機械学習による確率推定とカリブレー
    ション
    片桐智志
    May 22, 2020
    1
    スーパーの特売品を買いすぎたの
    でを作って食べた話
    July 31, 2020
    HEMA: 中世ヨーロッパの武術復興
    前編
    August 31, 2020
    8

    View Slide

  10. 最近の悪行 (1/2)
    • Tokyo.R いつも遅刻
    • Tokyo.R 時間配分を考えない発表で爆死
    • Tokyo.R おもいつきで発表して爆死
    9

    View Slide

  11. 最近の悪行 (2/2)
    • 中途半端な発表を放置して完成させていない
    •『再考: お買い得物件を機械学習で見つける方法』
    •『アクチュアリーの技術をマーケティング (離脱予測)
    に応用してみる』
    •『人工知能とシュミレーション (と R) - ビギニング』
    < NEW! >
    10

    View Slide

  12. ワッザ?!
    74 第 9 章 モデルの評価
    表9.1 正例割合ごとの, NE が 1 を切るのに必要な対数損失
    正例の割合 対数損失
    50% 0.693
    30% 0.611
    10% 0.325
    5% 0.199
    1% 0.056
    NE =
    −−1 ∑
    =1
    [ ln(
    ) + (1 −
    ) ln(1 −
    )]
    −−1 ∑
    =1
    [ ln( ̄
    ) + (1 −
    ) ln(1 − ̄
    )]
    =
    LogLoss
    − [ ̄
    ln( ̄
    ) + (1 − ̄
    ) ln(1 − ̄
    )]
    (9.1)
    こ こ で, ̄
    = −1 ∑

    , つ ま り ̄
    は 正 例 ラ ベ ル の 割 合 で す. NE は
    − [ ̄
    ln( ̄
    ) + (1 − ̄
    ) ln(1 − ̄
    )] と い う 要 素 で 対 数 損 失 を 「正 規 化」 し た 指 標
    です. 式 (9.1) の分子と分母の違いに注目してください. これは正例への予測確率が全て
    ̄
    , 負例に対しては全て 1 − ̄
    を予測確率として返すようなモデルの対数損失とみなせま
    11

    View Slide

  13. 的中率: 0.805
    的中率: 0.75
    的中率: 0.665
    的中率: 0.665
    的中率: 0.745
    的中率: 0.665
    的中率: 0.745
    的中率: 0.735
    的中率: 0.82
    Tree-6 Tree-7 Tree-8
    Tree-3 Tree-4 Tree-5
    RF Tree-1 Tree-2
    0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00 0.00 0.25 0.50 0.75 1.00
    0.00
    0.25
    0.50
    0.75
    1.00
    0.00
    0.25
    0.50
    0.75
    1.00
    0.00
    0.25
    0.50
    0.75
    1.00
    x1
    x2
    ラベル 1 2 予測 1 2
    図10.8 ランダムフォレストの各木の決定領域とメタ学習器の結果
    の重み平均となります. t 回目の学習で最小化する損失関数を
    (), 重みを ,
    とすると, 以下のようになり
    ます.

    () ∶=
    ∑ ,

    ()
    ∑ ,
    12

    View Slide

  14. 94 第 10 章 統計的学習の一般理論
    10.5 特徴量と前処理をどう選ぶべきか
    前処理, 特徴量変換という言葉はだいぶ曖昧に使われて, コンセンサスのある定義も存在
    しません. しかし, 使用する目的によって分けることができます. ただし, 完全に分割でき
    るわけでなく, 複数の役割を同時に担っているものもあります.
    1. データをアルゴリズムに適用できる形式に変換すること
    2. 数値計算の安定化
    3. モデルをデータへ近似させる補助
    これまで TD や pandas で解説してきた範囲は (1) に対応します. 多くのアルゴリズム
    とその実装は, 入力データを数値の配列の形式で受け取ります. あちこちにセル結合のあ
    るエクセルファイルや, 自然言語で書かれた乱雑なテキストは受け付けません. これは機
    械学習の理論からだいぶ離れた話になるため, ここではこれ以上触れません.
    数値特徴量の正規化 (normalize, min-max 変換) や標準化 (standardize) は変数の
    スケールを統一することで数値計算の桁落ちを減らしたり, 最適化の計算の収束を早める
    効果があります. 具体的な話は 10.2 章で言及したとおりです. これは (2) の観点です.
    一方で, 正則化をする際には, 正規化や標準化で変数の平均とスケールを揃えておかない
    と, 正則化の強さが特徴量ごとにばらばらになり, 歪んだ結果を生み出します*9. 理論上は
    特徴量ごとに異なる正則化を与えることも可能ですが, そのための実装や計算処理は非効
    率です. また, これは回帰モデルの話になりますが, 最小二乗法は目的変数の分布が正規
    分布, あるいはそれに近い対称分布になることを暗に仮定しています. そのため, 目的変
    数のヒストグラムがべき分布に近い形状を示すならば, 目的変数を対数変換や Box-Cox
    変換によってより対称な分布に変換すると当てはまりが改善される場合がよくあります.
    これらは, 実際のデータに含まれる特徴量や目的変数の分布を, 使用するモデルが想定し
    13

    View Slide

  15. おまえは RStudio を使っている
    か?

    View Slide

  16. まだ RStudio を使っていないやつへ

    初心者セッションがお前に教
    えてくれる
    14

    View Slide

  17. おまえはもう R Markdown を
    つかっているか?

    View Slide

  18. おまえは資料づくりでなやんだことはないか?
    • PNG を貼り付けるとぼやける
    15

    View Slide

  19. おまえには R Markdown がある
    • グラフをきれいに描けない
    • エクセルのグラフをコピペするのがめんどい
    • 図をうまく描けない
    • エクセルの表が気に入らない
    R Markdown は R を使う真の男のための銃 (GUN)
    である
    16

    View Slide

  20. RStudio 上で R Markdown を使え.
    • おまえはじぶんで調べることができる
    • https:
    //kazutan.github.io/kazutanR/Rmd_intro.html
    17

    View Slide

  21. おまえはベクタ画像で表示できる
    • 拡大してもボヤけない
    オブジェクト 'meatadata' がありません
    -0.050
    -0.025
    0.000
    0.025
    0.050
    -0.050 -0.025 0.000 0.025 0.050
    オブジェクト 'meatadata' がありません
    オブジェクト 'meatadata' がありません
    18

    View Slide

  22. おまえは ggplot2 を直接出力できる
    ggplot(tibble(
    meat = " オブジェクト 'meatadata' がありません"
    ),
    aes(x = 0, y = 0, label = meat)) +
    geom_text(color = "red") +
    labs(x = " オブジェクト 'meatadata' がありません",
    y = " オブジェクト 'meatadata' がありません")
    19

    View Slide

  23. おまえは tikz で書くことができる
    • 本来は L
    A
    TEX 用のパッケージ
    • {r} の代わりに {tikz} で直接書く
    • PDF, HTML いずれも自動変換してくれる
    A INNER JOIN B A OUTER JOIN B
    A LEFT JOIN B A RIGHT JOIN B
    図 1: tikz を利用した図の表示
    20

    View Slide

  24. tikz の記述
    \def\firstcenter{(135:1.75cm)}
    \def\secondcenter{(45:1.75cm)}
    \def\firstcircle{\firstcenter circle (2.0cm)}
    \def\secondcircle{\secondcenter circle (2.0cm)}
    \def\wholerect{(-4.0, -1.1) rectangle(4.0, 3.35
    \begin{tabular}{cc}
    % A cap B
    \begin{tikzpicture}
    \begin{scope}
    \clip \secondcircle;
    \fill[cyan] \firstcircle;
    \end{scope}
    \draw \wholerect; 21

    View Slide

  25. おまえは Asymptote でグラフを描ける
    • {asy} で asymptote を直接書ける.
    • おれは描けない
    図 2: Asymptote による画像
    22

    View Slide

  26. Asymptote の中身
    import graph3;
    import grid3;
    import palette;
    settings.prc = false;
    currentprojection=orthographic(0.8,1,2);
    size(500,400,IgnoreAspect);
    real f(pair z) {return cos(2*pi*z.x)*sin(2*pi*z.
    surface s=surface(f,(-1/2,-1/2),(1/2,1/2),50,Sp
    surface S=planeproject(unitsquare3)*s;
    S.colors(palette(s.map(zpart),Rainbow()));
    draw(S,nolight);
    draw(s,lightgray+opacity(0.7));
    grid3(XYZgrid); 23

    View Slide

  27. おまえは他の言語/パッケージでも描ける
    • DiagrammeR でグラフィカルモデル作成
    • 内部で DOT 言語 or ggplot2 を使ったパッケージ
    • 他にも選択肢はあるが未検証
    24

    View Slide

  28. おまえは表も出力できる
    • データフレームをそのまま表示
    • knitr と kableExtra を使用
    • シンプルで見やすい
    head(mtcars) %>% kable(booktabs = T)
    mpg cyl disp hp drat w
    Mazda RX4 21.0 6 160 110 3.90 2.620
    Mazda RX4 Wag 21.0 6 160 110 3.90 2.875
    Datsun 710 22.8 4 108 93 3.85 2.320
    Hornet 4 Drive 21.4 6 258 110 3.08 3.215
    Hornet Sportabout 18.7 8 360 175 3.15 3.440
    Valiant 18.1 6 225 105 2.76 3.460
    25

    View Slide

  29. おまえは表をリサイズできる
    head(mtcars) %>% kable(booktabs = T) %>%
    kable_styling(latex_options = "scale_down")
    mpg cyl disp hp drat wt qsec vs am gear carb
    Mazda RX4 21.0 6 160 110 3.90 2.620 16.46 0 1 4 4
    Mazda RX4 Wag 21.0 6 160 110 3.90 2.875 17.02 0 1 4 4
    Datsun 710 22.8 4 108 93 3.85 2.320 18.61 1 1 4 1
    Hornet 4 Drive 21.4 6 258 110 3.08 3.215 19.44 1 0 3 1
    Hornet Sportabout 18.7 8 360 175 3.15 3.440 17.02 0 0 3 2
    Valiant 18.1 6 225 105 2.76 3.460 20.22 1 0 3 1
    26

    View Slide

  30. おまえは表の書式設定ができる
    • kableExtra の vignetteより
    • beamer だと classoption: xcolor=table と
    か必要
    mpg cyl disp hp drat wt qsec vs
    Mazda RX4 21.0 6 160.0 110 3.90 2.620 16.46 0
    Mazda RX4 Wag 21.0 6 160.0 110 3.90 2.875 17.02 0
    Datsun 710 22.8 4 108.0 93 3.85 2.320 18.61 1
    Hornet 4 Drive 21.4 6 258.0 110 3.08 3.215 19.44 1
    Hornet Sportabout 18.7 8 360.0 175 3.15 3.440 17.02 0
    Valiant 18.1 6 225.0 105 2.76 3.460 20.22 1
    Duster 360 14.3 8 360.0 245 3.21 3.570 15.84 0
    Merc 240D 24.4 4 146.7 62 3.69 3.190 20.00 1
    27

    View Slide

  31. おれは R に膨大なエラーを吐かせているがその全てをみ
    せるつもりはない
    that_cell <- c(rep(F, 7), T)
    mtcars[1:8, 1:8] %>%
    kable(booktabs = T, linesep = "") %>%
    kable_styling(latex_options="scale_down") %>%
    # kable_paper(full_width = F) %>%
    column_spec(2, color = spec_color(mtcars$mpg[1:
    link = "https://haozhu233.github.io/kableExtra"
    column_spec(6, color = "white",
    background = spec_color(mtcars$drat[1:8], end =
    popover = paste("am:", mtcars$am[1:8])) %>%
    column_spec(9, strikeout = that_cell, bold = th
    color = c(rep("black", 7), "red"))
    28

    View Slide

  32. おまえは他の表出力パッケージも使える
    • stargazer 等 TeX 形式を出力するもの
    • results='asis' でだいたいなんとかなる
    • HTML ではどうなるか不確定
    • gt も対応してるらしい
    29

    View Slide

  33. R Markdown の 闇
    • 細かい調整にこだわると 闇
    • 闇 の一端の解説: 先週書いた話
    • R, knitr, Markdown, Pandoc, L
    A
    TEX, HTML それ
    ぞれの知識が必要
    • 怖くないよ
    • 有用な日本語資料はそれなりにある
    • PDF の方は 微闇
    30

    View Slide

  34. おまえはもう rmdja を使っているか?
    • ここにある
    • R Markdown の日本語用フォーマット
    • 日本語表示の面倒な部分を自動調整
    • 現在はプレゼン用フォーマットが安定しつつある
    • L
    A
    TEX の beamer を利用し PDF で出力
    • このスライドも全て rmdja で作成
    • かっこいいエピグラフを入れ放題
    • 作例も豊富
    31

    View Slide

  35. おまえは RStudio で Python
    を書いているか?

    View Slide

  36. Python イクォール RStudio
    • 昔はかなりしんどかった
    • 今は reticulate がある
    • R Markdown でも Python 実行可能
    • 補完機能もある
    • もはや Python は RStudio も同然.
    Python イクォール RStudio
    32

    View Slide

  37. HOW MANY PYTHONS CAN DANCE ON THE
    HEAD OF RSTUDIO?
    import numpy as np
    from sklearn.datasets import make_classificatio
    from sklearn.linear_model import LogisticRegres
    from sklearn.metrics import log_loss
    from ml_shared.evaluation import normalized_ent
    X, y = make_classification(n_samples=100, weigh
    logis = LogisticRegression(random_state=42).fit
    print(f"""LL: {log_loss(y, logis.predict_proba(
    NE: {normalized_entropy(y, logis.predict_proba(
    > LL: 0.046
    > NE: 0.093 33

    View Slide

  38. THULSA DOOM’S CONSPIRACY
    • いくつか 罠 が存在
    • よくキャッシュが悪さをする
    • グラフ関係
    • どちらかというと Python モジュールの 闇
    34

    View Slide

  39. おまえは Python でもグラフを描ける
    • Python には matplotlib がある
    • おまえは日本語表示もできる
    35

    View Slide

  40. from matplotlib_japreset import mplj_cairo
    import matplotlib.pyplot as plt
    plt.text(0, .5, 'rmdja で広がる python の世界', siz
    0.0 0.2 0.4 0.6 0.8 1.0
    0.0
    0.2
    0.4
    0.6
    0.8
    1.0
    rmdjaで広がるpythonの世界
    図 3: matplotlib で描画
    36

    View Slide

  41. Python ハマりポイント: グラフの日本語表示問題
    • Python には matplotlib がある
    • 日本語表示問題
    • R グラフよりも一層 闇
    • 日本語情報は錯綜しまくってて不明瞭
    • 公式ドキュメントとソースコードだけが信頼できる
    状況
    • 近いうちに詳細な解説を公開
    37

    View Slide

  42. Python の 闇 , グラフ保存への対処術
    • japanize-matplotlib
    • IPA フォントを同梱して強引に適用
    • pip とかで簡単インストール
    • import japanize_matplotlib だけで機能
    • 問題点
    • あくまで画面表示まで, 保存は想定していない
    • おれは IPA フォントが好きではない
    • なんかバランス悪いし・


    • フォントは揃えたい
    38

    View Slide

  43. 闇 のグラフィックデバイスを克服する道のり
    • フォント指定だけなら大きな問題ではない
    • rcParams['font.family'] でフォント名指定
    • OpenType や ttc をなるべく避ける
    • 画像の保存で難易度 うなぎのぼり
    • PDF にフォントが埋め込まれない
    • 埋め込んでもサブセット化されない
    • OS ごとに挙動が違いすぎる
    39

    View Slide

  44. matplotlib-japreset (WIP)
    • おれがプリセットを用意した
    • matplotlib-japreset
    • from matplotlib_japreset import
    mplj_***
    • mplj_pdf: PDF モード
    • mplj_pgf: L
    A
    TEX 数式モード
    • しかし OS ごとに挙動が違いすぎる
    • ぶっちゃけ自分の Linux でしか動作してない

    40

    View Slide

  45. 表示例
    • cairo_pdf は使えないので dev='png'/'pdf'
    •「青柳隷書しも」で表示
    0.4
    0.6
    0.8
    1.0
    rmdjaで広がるpythonの世界
    matplotlib-japresetで表示される日本語
    41

    View Slide

  46. Python グラフハマりポイント 2
    • そもそも,
    matplotlib がつかいにくい
    • ちょっと複雑なグラフを描くにはあまりにも複雑
    • あきらかに労力に見合わない
    • 前世紀の構文は現代の実情に合わない
    42

    View Slide

  47. おまえは plotnine を使える
    • 公式
    • 構文が ggplot2 そっくり
    • バックエンドで matplotlib 動いている
    • GRAMMAR オブ GRAPHICS に基づいていることが
    照明されている
    • 以前は ggplot2 のクローンではないと言い張ってい
    たが隠さなくなった
    • そっくりでない部分もある
    • デフォルトの色が目に優しくない
    • 本家のいくつかの関数は再現されていない
    • そのうちブログにまとめる
    43

    View Slide

  48. plotnine でグラフを描く
    • pandas データフレームで与える
    • R の NSE はさすがに使えない
    • numpy 式は評価される
    from plotnine import *
    theme_set(theme_classic(base_family=None))
    ggplot(d, aes(x='x + 1', y='np.exp(y)', color='
    −1 0 1 2 3
    0
    5
    10
    15
    np.exp(y)
    z



    44

    View Slide

  49. plotnine: 主なハマりポイント
    • 日本語が表示できないとき
    • なんか rcParams をオーバーライドするやつがいる
    • base_family=None で
    • PR 上げたけどまだ反応がない
    • カテゴリカル変数の順序
    • pandas.Categorical を使う
    45

    View Slide

  50. おまえは pandas の掲載ができる
    • pandas の出力は R データフレームと同じではない
    • .to_markdown(), .to_latex() を使うべきか
    • Python の tabulate が必要
    print(d.head(n=5).to_latex())
    x y z
    0 0.496714 -1.415371 ろ
    1 -0.138264 -0.420645 ろ
    2 0.647689 -0.342715 い
    3 1.523030 -0.802277 い
    4 -0.234153 -0.161286 い
    46

    View Slide

  51. おまえは bookdown でインター
    ン用資料を作ったか?

    View Slide

  52. おれがなぜこんなことをしているのか
    • 勤務先のインターン向けに資料を作成
    • 機械学習とかやるやつ
    • 市販の書籍にちょうどいいレベルのがない
    • リモートなので本を共有できない
    • L
    A
    TEX で書いていた
    • 編集が大変
    • プログラムと出力のコピペがめんどくさい
    47

    View Slide

  53. おまえは JUPYTER を知っているか
    • Python 用のレポート作成ツール
    • Jupyter notebook/Jupyterlab
    • 今は notebook は開発沈静化
    • しかし lab はまだ機能が乏しい…
    48

    View Slide

  54. SAYONARA   JUPYTER・


    • R Markdown と比べると文書作成機能が弱い
    • 脚注とか参考文献リストとか相互参照とか..
    • PDF の変換機能が乏しい
    • スライドにコード載せる余白はない
    • プログラムコード部分が丸出し
    不満をつのらせたおれは……
    49

    View Slide

  55. R で Python の資料を書く
    ことにした
    50

    View Slide

  56. おまえには bookdown がある
    • リポジトリ
    • R Markdown を利用した製本パッケージ
    • HTML, PDF, 電子書籍 (epub, mobi) などを一度に
    生成可
    • R Markdown とほぼ同じ構文
    • 全媒体を同時にうまく出力する道のりは・


    大闇
    51

    View Slide

  57. 何が沼か
    • PDF の和文組版
    • デフォルトでは xeCJK
    • 実質中国語用
    • スライドではあまり気にならない
    • 画像の埋め込み
    • PDF は PDF, HTML は PNG で埋め込みたい
    • HTML と PDF との違い
    • PDF は L
    A
    TEX コマンドで書ける
    • HTML は対応しない
    • (R Markdown 同様) 日本語情報が少ない
    • 開発者の三部作読めばだいたいわかるが英語
    52

    View Slide

  58. rmdja 0.3.1 の新機能
    • bookdown にも対応
    • オトクな支援機能追加
    • rmdja で作った rmdja のドキュメント (作りかけ)
    53

    View Slide

  59. (実際にページを開いてみる)
    • HTML
    • PDF
    • PDF (製本仕様)
    • 電子書籍
    • 機械学習テキストは近日公開予定
    • 社内レビューがまだ
    54

    View Slide

  60. おまえは相互参照から解放される
    • 手動で図表番号を書く必要なし
    • 引用文献も .bib や .json から自動生成
    • citr パッケージと併用
    図 5: ‘citr‘ パッケージによる RStudio プラグイン
    55

    View Slide

  61. rmdja の追加機能: CC ロゴ表示
    • あったら便利だけど bookdown とかにはないもの
    • CC のロゴ表示 (beamer では追加設定が必要)
    rmdja::get_CC(adapt = "yes",
    commercial = F, size = "normal")
    56

    View Slide

  62. rmdja の追加機能: ルビを付ける
    • ルビを付けるインライン関数 rmdja::ruby()
    • (この資料は Beamer なのでルビが上の行と重なる
    ことがある)
    • 混植との併用は不可
    き れ
    喜連
    うりわり
    瓜破駅
    とある科学の
    レ ー ル ガ ン
    超電磁砲
    シュワルツ・ランツェンレイター
    黒 色 槍 騎 兵
    (失敗例)
    57

    View Slide

  63. おまえは技術書を出版できる (?)
    •『Bookdown による技術系同人誌執筆』
    • 技術同人誌を bookdown で作成した人のブログ記事
    • トンボ付きで PDF 作成
    • rmdja でもオプションを用意
    • 実際にやったことないので動作保証外
    • 経験者は要件おしえて
    58

    View Slide

  64. main (2020-09-19 04:47)
    20 第 1 章 準備
    01 bookdown::render_book("index.Rmd", "rmdja::gitbook_ja")
    02 bookdown::render_book("index.Rmd", "rmdja::pdf_book_ja")
    03 bookdown::render_book("index.Rmd", "bookdown::epub_book")
    コピーしたディレクトリ bookdown-minimal を設定する (図 1.1, 1.2).
    図1.1 Build ペーンの手動設定
    図1.2 Build ペーンの手動設定
    これで _book フォルダに出力がされる.
    59

    View Slide

  65. おまえは Jupyter{Book} を知
    っているか?

    View Slide

  66. Jupyter vs R Markdown
    • フォーマットが少ない
    • セルが表示される, 出力ファイル形式でまったく
    崩れる
    60

    View Slide

  67. Jupyter{Book} の登場
    Jupyter 開発チームのブログで言及
    • R Markdown の対等に危機感を覚えたのか?
    • Sphinx + Jupyter
    • bookdown のように複数形式への出力はフィーチャ
    ーされてない?
    61

    View Slide

  68. まとめ

    View Slide

  69. まとめ
    • おれは rmdja を作った
    • おまえは GUN を手にいれた
    • 面倒な設定を省いて Beamer プレゼン資料を作れる
    • 外部ソフトの出力をいちいちコピペ市内で住む
    • おれは R で Python の技術文書を作った.
    • Python の日本語表示問題をなんとかしようとし
    ている
    • おれは rmdja で文書も作れるようにした
    • おまえは rmdja でどんどん怪文書を作成してばらま
    ける
    62

    View Slide

  70. お前は万物を RSTUDIO で書け

    63

    View Slide