Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
R Markdownを使った再現的レポーティング
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
niszet
April 13, 2019
Technology
1
670
R Markdownを使った再現的レポーティング
2019/04/13(土) に行われた 第77回R勉強会@東京(#TokyoR)初心者セッション2 の資料です。
niszet
April 13, 2019
Tweet
Share
Other Decks in Technology
See All in Technology
生成AIを活用した音声文字起こしシステムの2つの構築パターンについて
miu_crescent
PRO
3
220
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
210
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
150
M&A 後の統合をどう進めるか ─ ナレッジワーク × Poetics が実践した組織とシステムの融合
kworkdev
PRO
1
510
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
130
(技術的には)社内システムもOKなブラウザエージェントを作ってみた!
har1101
0
220
OCI Database Management サービス詳細
oracle4engineer
PRO
1
7.4k
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
6
1.8k
Agent Skils
dip_tech
PRO
0
130
ファインディの横断SREがTakumi byGMOと取り組む、セキュリティと開発スピードの両立
rvirus0817
1
1.6k
旅先で iPad + Neovim で iOS 開発・執筆した話
zozotech
PRO
0
100
Webhook best practices for rock solid and resilient deployments
glaforge
2
310
Featured
See All Featured
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
79
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
37
6.3k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Darren the Foodie - Storyboard
khoart
PRO
2
2.4k
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.6k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
1.6k
AI Search: Implications for SEO and How to Move Forward - #ShenzhenSEOConference
aleyda
1
1.1k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.7k
16th Malabo Montpellier Forum Presentation
akademiya2063
PRO
0
52
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
659
61k
Transcript
第77回R勉強会@東京 R Markdownを使った 再現的レポーティング niszet 2019/4/13
R Markdownを使った再現的レポーティング
誰? • なまえ: niszet (@niszet0) • R歴: 3年目のRおじさん • AtCoder:
茶色になりました! • 日本Pandocユーザー会
「R MarkdownでWord文書をつくろう」の献本あります 想定している対象読者層は R Markdownをある程度知っていて、 • Wordを使わないといけない方 • PowerPointを使わないといけない方 ※
このスライドもR Markdownから作っ ています
アウトプットしよう(技術同人誌界隈目線) • 何かしたら最後は必ずアウトプット • 成果をまとめるため • アウトプットすることで、理解できている/いないがはっきりする • 結果をshareする相手は将来の自分かもしれない。 •
Qiitaでもブログでも(個人ブログはおすすめ) • 2018年は208件ブログ投稿してました もちろん外部に公開しなくてもOKです でも…結果は再現できた方が良いですよね。
よくある?シチュエーション 3か月前に作ったレポートをもう一度作らないといけな くなった。しかし… • データが行方不明… • どうやって処理したのかわからない • どうやって作図したのかわからない 結果や図が再現しない…!
R Markdownを使おう • データの前処理からドキュメント生成まで、書いた通りにR (knitやrmarkdown、その他のパッケージたち)が実行する 。 • 途中に手作業が入らない ので、何度やっても同じ結果や見 た目を保つ
ことが出来る • 毎回クリーンな環境で実行されるので結果が変わらない • コンソール上で定義した変数や読み込んだライブラリは無効 • テキストファイルなので、gitでの管理にも向いている。
R Markdownで管理すべきもの • 生データ • 前処理、モデリング、可視化などのコード • ドキュメント本文の文章 • その他必要なもの(外部の画像ファイルなど)
全部!
出力ファイルの例 • HTMLのレポート • https://niszet.github.io/TokyoR77_rep_rmd/Sample1.html • スライド • https://niszet.github.io/TokyoR72LT/TokyoR72LT.html#/ •
Word形式で書いた同人誌 • 名刺 • Webサイト、ブログ、オンライン書籍 …などなど、様々な形式のファイルが作れます。
RStudioでR Markdownを作る(実演) 実際に作ってみよう。 RStudioが既にインストールされていれば、簡単に試すこ とが出来ます。
これを ツールバーの File - NewFile から R Markdown… を選択
こうして… HTML形式を選択してtitleとauthorを決める
こうじゃ! Knitボタンを押す。ファイルを保存していない場合は保存する。
出来た! 生成されたHTMLファイルがRStudio上で表示される。ブラウザで開くことも出来る。
R Markdownの構造 R Markdownのファイル構造は大きく3つの部分に分けられる。
YAML • YAML Ain’t a Markup Language の略。 • リストや連想配列のような構造のあるデータを書く
• R MarkdownではPandocにデータや指示を送るために使う • キー: 値の形で書く。 • title: HTML形式のR Markdownサンプル のように。 • 最低限outputだけ指定すれば動きます。 • outputに指定するのはrmarkdownパッケージの関数なので、詳細な 使い方はhelpを読みましょう
Markdown 文章の構造(意味のまとまり)を記号を使って書くのに 適した言語。基本は普通の文字列。 慣れるまではCheatSheetやHelpを見よう • ツールバーのHelpからCheatSheetを表示 • Markdown Quick ReferenceをHelp
Paneに表示
Markdownのハマるところ 表示が意図通りにならなくて困ったら… • 空の行を入れる • ブロック要素の前後に空の行) • 記号の前後に空白を入れる と意図した表示になりやすい •
インライン要素の前後に半角スペース • 記号の表示は直前にバックスラッシュ(¥) • 改行は行末にバックスラッシュか半角スペース2つ。
チャンク R のコードのまとまりをチャンクと呼びます。
表を出力してみる Sepal.Length Sepal.Width Petal.Length Petal.Width Species 5.1 3.5 1.4 0.2
setosa 4.9 3.0 1.4 0.2 setosa 4.7 3.2 1.3 0.2 setosa 4.6 3.1 1.5 0.2 setosa 5.0 3.6 1.4 0.2 setosa 5.4 3.9 1.7 0.4 setosa knitr::kable(head(iris), caption=キャプション)
チャンクオプション • チャンク名=値の形で書く • チャンク名は付けた方が良い • setupチャンクにはlibrary()やデータの読み込みなどを書く • よく使うオプション •
eval(コードを実行するか) • echo(コードを表示するか) • fig.width、fig.height(画像の幅と高さ)
インラインコード 本文中に `r nrow(iris)` のように書くと、irisデータの行数 150を違和感なく埋め込むことができます。 データフレームなどは普通のブロックのチャンクで表示 しましょう。
チャンクオプションで困ったらココへ R markdown(knitr)パッケージのchunk optionまとめ My Life as a Mock Quant
https://teramonagi.hatenablog.com/entry/20130615/13713 03616
画像 Rのプロットはそのまま画像になる • 中間データでファイルが生成され、自動で削除される 外部の画像は • Markdownの画像の文法、 • Rのknitr::include_graphics("ファイルパス") を使う。
plotの例 plot(iris)
ggplot2の例 ggplot(iris, aes(x=Sepal.Length, y=Petal.Length))+geom_point()
TIPS • ショートカットキーのCtrl+Shift+K は良く使うので覚えておき ましょう。 • ショートカットキー一覧はShift+Alt+K で表示されます。 • チャンクのコードを三角ボタンで実行すると、Consoleで実
行されるので注意(前後の実行環境で結果が変わる) • Environment Paneで確認。実行前後に箒のボタンで消しましょう
困ったときは… • kazutanさんのR Markdown入門がおすすめ • https://kazutan.github.io/kazutanR/Rmd_intro.html • r-wakalang に rmarkdown
部屋があります
Appendix • R言語初学者のための参考図書やサイトのまとめがあると便 利そうだけどないので勝手に作ろうと思う。 https://niszet.hatenablog.com/entry/2019/04/13/075059
Enjoy!!