R Markdown の使い方R Markdown とはR Markdown とは「R と
Markdown が結合されたもの」Markdown とは John Gruber と Aaron Swartz
が2004年に提案した Markup言語R Markdown
を使うと、コード、実行結果、説明文を同時に文書化できるRStudio 上でR Markdown を使う利点HTML, PDF, MSWord,
PowerPoint などHTMLでの出力を推奨R Markdown
とは何か?
・Markup
言語、Markdown、R Markdownの違いを知るためには
2 種類のテキストの違いを知る必要がある
plain text)・書式情報などが含まれていないテキストのみで構成されている文書
・「書式情報」とは文書の余白、文字の大きさ、文字の色などのこと
・ Rmd ファイルに書き込んでいる R
コードも「プレーンテキスト」
・「プレーンテキスト」の例:
- macOS の TextEdit
- Windows のメモ帳
・「プレーンテキスト」には書式設定や図表の挿入などの機能はない
rich text)・書式情報や図表なども含まれる文書
・「リッチテキスト」の例:
- Microsoft
Word
- Pages
- LibreOffice Writer
・リッチテキストでは書式の設定や図表・リンクの挿入などができる
Markup 言語とは・プレーンテキストのみでリッチテキストを作成するための言語
・Markup 言語の代表的な例・・・
HTML:(HyperText Markup Language)
・html
には図表があり、太字、見出し、水平線などテキスト以外の情報を含む
・html はテキストのみで書かれている
・画面を出力するためにはウェブブラウザが必要
・ウェブブラウザの一例:
- Firefox
- Chrome
- Edge
・これらのウェブブラウザがテキストファイルを読み込む
→ 解釈
→ 書式が付いている画面を出力する
Markdownとは・Markup 言語をより単純な文法で再構成したもの
R Markdown とは・Markdown に R
コードとその結果を同時に載せることができる Markdown
のこと
R Markdown の設定手順| 手順 | 手順の内容 | Steps |
I.
Rプロジェクト作成 |
:フォルダを作る(例:keiryo_2023) |
1 - 5 |
II.
Rmdファイル作成 |
:
ファイルを作る(例:first_trial.Rmd) |
6 - 10 |
III.
Knit |
:
ファイルを出力する(例:first_trial.html) |
11 - 18 |
Rプロジェクト作成Rプロジェクトを作成すること =
Rプロジェクトフォルダを作成することStep_1:RStusio を起動して File →
New Project を選ぶStep_2:Create Project の中から New Directory
を選ぶStep_3:Project Type の中から New Project
を選ぶStep_4:New Project を選ぶと、次のような画面が表示されるRプロジェクトフォルダを置く場所を指定するRプロジェクトフォルダをデスクトップに置くよう指定するBrowse」 をクリックする
Step_5:Browse」
をクリックすると、次のような画面が表示されるDesktop」をクリックopen」をクリックするStep_6:Step_6 の画面に戻るDirectory name:」に keiryo_2023
と入れてみるCreate Project」をクリック
Directory name
を入力する際の注意
・半角・英数字を使う(全角文字とスペースは使わない)
・記号はアンダーバー「-」とピリオド「.」を使う
・ハイフン「-」は使わない
・アルファベットから始める(数字や記号から始めない)
Step_7:keiryo_2023」を確認Rプロジェクトの名前
Rmdファイル作成Step_8:File → New File → R Markdown
を選ぶ
Step_9:Title: に R Markdown の使い方
と入力(ここでは日本語もスペースも ok)Author: に自分の名前を入力(ここでは日本語もスペースも
ok)Date: に "r Sys.Date()"
と入力すると、自動的に日付を付けてくれるDefault Output Format: にはデフォルトの
HTML をチェックOK をクリックStep_10:Rmd ファイルができたRmd ファイルの名前は Untitled1Knitknit)」→
「文字を編んで出力する」という意味Step_11:Knit をクリックするStep_12:Rmd ファイルに名前を付けるStep6 と同様、日本語は使えないSave As: に first_trial と入力Save をクリックSave As:
に入力する際の注意
・半角・英数字を使う(全角文字とスペースは使わない)
・記号はアンダーバー「-」とピリオド「.」を使う
・ハイフン「-」は使わない
・アルファベットから始める(数字や記号から始めない)
注意:
first_trial.Rmd
が出力される際、Step_13 と Step_14 の 2
つのケースが想定される
Step_13 のように表示された場合 → Step_16
に進むStep_14 のように表示された場合 → Step_15
の指示に従うStep_13:first_trial.html)Step_14:RStudio とは別画面の html
で開かれるRStudio 内の
pane (右下)に表示させるStep_15Preview in Viewer Pane を選ぶStep_16:Step_17: R Project フォルダ内の確認Files をクリックkeiryo_2023 という名前の
R Project フォルダ内を確認できる| ファイル名 | 役割 |
.Rhistory |
履歴ファイル |
first_trial.html |
画面右側の pane
に表示される出力(htmlファイル) |
first_trial.Rmd |
画面左上の pane に表示されるテキスト(Rmd
ファイル) |
keiryo_2023.Rproj |
RProject
を開くためにクリックするアイコン |
Step_18:R Markdown の文法R Markdown ファイルの 3 つの領域Rmd ファイルは次の 3 つの領域から構成される| 領域 | 役割 |
YAML ヘッダー |
:題目・作成者情報・日時など文書全体に通じる設定 |
| チャンク | : Rコードが入るところ |
| マークダウン | : 文書の本体 |
R Markdown 文法項目| 項目 |
|---|
| 1. 改行 |
| 2. 強調:太字、イタリック、アンダーライン、取り消し線、色 |
| 3. 箇条書き |
| 4. 見出し |
| 5. 区切り線 |
| 6. 表 |
| 7. 画像 |
| 8. リンク |
| 9. 脚注 |
| 10. 数式 |
| 11. 引用 |
| 12. コメント |
| 13. R コードとチャンク |
| 14. チャンクオプション |
| 15. コードまたは結果の表示/非表示 |
| 16. プロット |
| 17. チャンクオプションのもう一つの書き方 |
| 18. コードのコスメティック |
| 19. ヘッダーのオプション |
| 20. 目次の追加 |
| 21. コードのハイライト |
Markdown
の場合、1回改行したがけでは改行は改行として判定されず、同じ行の連続と認識される
Rmd ファイルへの入力画面
html の出力画面Rmd ファイルへの入力画面文章の一部を**太字**にすることもできます
文章の一部を*イタリック*にすることもできます
文章の一部に<u>アンダーラインを引く</u>こともできます
文章の一部を~~取り消す~~こともできます
文章の一部を[好みの色、例えば赤]{style="color:red"}にすることもできます html の出力画面文章の一部を太字にすることもできます
文章の一部をイタリックにすることもできます
文章の一部にアンダーラインを引くこともできます
文章の一部を取り消すこともできます
文章の一部を好みの色、例えば赤にすることもできます
-」の後ろに半角スペースを 1
つ入れるRmd ファイルへの入力画面- 研究テーマの選び方
- リサーチクエスチョンの種類
- 実証的問題
- 規範的問題
- 分析的問題
- 「よい研究テーマ」の見つけ方
- 「よい研究テーマ」の基準
- 規範的問題から実証的問題への変換方法
- パズルを探す html の出力画面
研究テーマの選び方
「よい研究テーマ」の見つけ方
半角ハイフン「-」を「数字.」に換える
順序なしの場合と違って数字の後にピリオド「.」が付く
全角 3 文字以上の字下げで下位項目を追加できる
Rmd ファイルへの入力画面
1. 研究テーマの選び方
1.2 リサーチクエスチョンの種類
1.2.1 実証的問題
1.2.2 規範的問題
1.2.3 分析的問題
1.3 「よい研究テーマ」の見つけ方
1.2.1 「よい研究テーマ」の基準
1.2.2 規範的問題から実証的問題への変換方法
1.2.3 パズルを探す html の出力画面#」を使う#」の数が多いほど文字が小さくなる#」は 4 つまで使えるMarkdownの表は「行」は「改行」、「列」は「|」で区切られる
表の第 1 行はヘッダー(変数名や列名が表示される行)扱い
ヘッダーと内容の区分は |---| で行う
「``」で囲むと文字の背景をグレーで表示できる
1 行目はヘッダーで太字、自動的に中央に揃えてくれる
2 行目以降・・・デフォルトでは左揃え
2
行目で列ごとに「左揃え」「中央揃え」「右揃え」に指定できる
・|:---|・・・左揃え(デフォルト)
・|:---:|・・・中央揃え
・|---:|・・・右揃え
Rmd ファイルへの入力画面
|項目|関数|役割| # ヘッダー(太字で中央揃え)
|:---|:---|:---|
| 1. データを指定|`ggplot(data = )`|データを選ぶ|
| 2. 変数を指定|`aes()`|変数を指定 |
| 3. グラフの種類を指定|`geom_*()`|グラフの種類を指定|html の出力画面| 項目 | 関数 | 役割 |
|---|---|---|
| 1. データを指定 | ggplot(data = ) |
データを選ぶ |
| 2. 変数を指定 | aes() |
変数を指定 |
| 3. グラフの種類を指定 | geom_*() |
グラフの種類を指定 |
R Markdown に画像を入れるには次のようにチャンクの外に入力する
ワーキングディレクトリ(つまり、R プロジェクトフォルダ、つまり
keiryo_2023)にない場合I. Rプロジェクト作成 で keiryo_2023 という
R プロジェクトフォルダを作成したR プロジェクトフォルダの中に画像を入れて、そこからその画像を
RMarkdown に表示してみるStep_17 を復習Step_17: R Project フォルダ内の確認Files をクリックkeiryo_2023 という名前の
R Project フォルダ内を確認できる| ファイル名 | 役割 |
.Rhistory |
履歴ファイル |
first_trial.html |
画面右側の pane
に表示される出力(htmlファイル) |
first_trial.Rmd |
画面左上の pane に表示されるテキスト(Rmd
ファイル) |
keiryo_2023.Rproj |
RProject
を開くためにクリックするアイコン |
tsubakuro_2000.JPG というファイルを
keiryo_2023 の中に入れるkeiryo_2023 の中に tsubakuro_2000.JPG
が入っていることを確認する
次のコードを「チャンクの外に」入力して Knit
する
Rmd ファイルへの入力画面
html の出力画面html の出力画面図表用のフォルダを作る
・通常、ファイルを整理する観点から、R Markdown
に表示したい図や写真は、R プロジェクトフォルダの中に
figure
など好きな名前を付けたフォルダを作り、その中に入れておくと便利
・tsubakuro_2000.JPG も figure
の中に入れるのが望ましい
・その場合のコマンドは次のようになる
tsubakuro_2000.JPGfigure/tsubakuro_2000.JPG[]内は実際に表示されるテキスト
() は飛ばしたい先の URL
Rmd ファイルへの入力画面
html の出力画面Rmd ファイルへの入力画面html の出力画面解説:
[^foot1] ・・・脚注を入れたい所に置く[^foot1]:・・・コロンの後ろに脚注に入れたい内容を書く^ は「固有識別子」と呼ばれるfoot と脚注番号 (1, 2, 3,...)
は半角で入れるインライン数式は $数式$ もしくは
$$数式$$ で埋め込む
数式は LaTeX の書き方とほぼ同じ
R Markdown の数式は MathJax
によってレンダリングされる
MathJax ライブラリは HTML
に埋め込まれていない
→ インターネットに接続せずに HTML
ファイルを開くと数式が正しく出力されない
Rmd ファイルへの入力画面
html の出力画面
\(Y = a + bx^2\)
数式を独立した行として中央に寄せて表示したければ
$$数式$$ を使う
Rmd ファイルへの入力画面
html の出力画面
\[Y = a + bx^2\]
数式が複数の行で構成されている場合は $$ 内に
aligned 環境
\begin{aligned}・・・\end{aligned} を入れる
複数の行にわたる数式の書き方
Rmd ファイルへの入力画面
html の出力画面引用する時には、文章の最初に >
を入れ、その後に半角のスペースを 1 つ入れる
Rmd ファイルへの入力画面
html の出力画面次は『我が輩は猫である』の文頭である。
[A] 吾輩は猫である。名前はまだ無い。どこで生れたかとんと見当けんとうがつかぬ。
とりあえず書いてはみたが、当面使わない、しかし消すのがもったいない、という文書を保存する方法
コメントとして残して起きたい文書は <!-- と
--> で囲む
Rmd ファイルへの入力画面
html の出力画面この下の行にコメントを書きますが、それは出力されません
上の行にコメントは表示されないはずです
R Markdown
を使って、簡単な文法のみで構造化された文書が作成できるR Markdown の意義は「文章」と 「R
コード」と「結果」が統合されることR
コード」を組み込む方法について紹介「文書」に 「R
コード」を組み込む方法 ・R
コードをチャンクの間に入力する
・下の記号で囲まれた部分を R Markdown
ではチャンク(Chunk)と呼ぶ
```{r}
```
・チャンクの中に R コードを入力する
→ R コードと結果が同時に出力される
チャンク内では R と全く同じことができる
・パッケージの読み込み
・データの読み込み
・オブジェクトの生成
・データハンドリング
・可視化などなど
文中に R コードを埋め込むことも可能
例えば、単に 1 から 5 までの数値の平均値を求めたければ、次の R コードをチャンクに入力すれば良い
[1] 3
これを出力するためには、文中に R
コードを埋め込む必要がある
Rmd ファイルへの入力画面
html の出力画面変数 x の平均値は 3 になる
x <- c(1, 2, 3, 4, 5)
を文中に埋め込むと、仮に x
の値を変更しても、平均値を自動的に計算してくれるので便利であるR Makrdown は R と Markdown
から構成されるR はチャンク内の部分Markdown はチャンク外の部分{r チャンク名, オプション1, オプション2, ...}チャンク・オプションとして指定する
「R
コードだけ見せたい」とか「結果だけ見せたい」場合に使うオプション
実際に編集する際には、とても便利な機能
例えば、x <- c(1, 2, 3, 4, 5)の平均値を計算するコードの場合
R Markdown では作図の結果も出力できる| 引数 | 内容 |
| fig.height | : 図の高さ・インチ・デフォルト値7 |
| fig.width | : 図の幅・インチ・デフォルト値7 |
| fig.align | : 図の位置・・・“left”, “center”, or “right” |
| fig.cap | : 図のキャプション |
| dpi | : 解像度・デフォルト72・出版用だと300以上 |
hr96-24.csv をクリックしてデータをパソコンにダウンロード
RProject フォルダ内に data
という名称のフォルダを作成する
ダウンロードした hr96-24.csv
を手動でRProject フォルダ内にある data
フォルダに入れる
このデータを使って、高さ5インチ、幅7インチ、中央揃え、解像度
72dpi の図を作成
キャプションとして「2021自民党総裁選立候補者の選挙マージン:1996-2024」を付けてみる
下の R
コードには表示されないが、チャンク・オプショには次のように入力する
```{r, fig.height = 5, fig.width = 7, fig.align = "center",
dpi = 72, fig.cap = "2021自民党総裁選立候補者の得票率:1996-2024"}hr |>
select(year, voteshare, j_name) |>
filter(year < 2024) |>
filter(j_name == "岸田文雄" | j_name == "高市早苗"|
j_name == "河野太郎"| j_name == "野田聖子") |>
ggplot(aes(x = year,
y = voteshare,
colour = j_name,
linetype = j_name,
shape = j_name)) +
geom_point() +
geom_line() +
geom_text(
aes(y = voteshare + 0.1,
label = round(voteshare, digits = 1), vjust = 0)
) +
theme(legend.position = c(0.9, 0.2)) +
labs(x = "総選挙年",
y = "得票率(%)") +
theme_bw(base_size = 10, base_family = "HiraginoSans-W3")2021自民党総裁選立候補者の得票率:1996-2024
3.1.14 プロット
では、チャンクオプションは{r}の内部に指定すると説明した
しかし、チャンクオプションが多い場合
→ コードの可読性が低下してしまう
→ #|を使ってチャンクオプションの指定をする
チャンク内部に #| を書く
→#|以降の内容がチャンクオプションとして認識される
3.1.14 プロット
では、下のチャンク・オプションを指定した
```{r, fig.height = 5, fig.width = 7, fig.align = "center",
dpi = 72, fig.cap = "2021自民党総裁選立候補者の得票率:1996-2024"}R Markdown の結果は他人と共有するケースが多いtidy = TRUE というオプションを加えるtidy = TRUE
と指定しない場合と指定した場合で出力を比較してみるR Markdown
ファイルを生成すると、ファイルの最上段には下のようなヘッダー(header)が表示される4 つの項目が指定されている
・title: 文書のタイトル ・author:
作成者の名前
・date: 文書の作成日(今日の日付)
・output: 出力形式・・・ここでは html
に設定
R Markdown ヘッダーは
YAML(ヤムル)形式で書かれている
上の項目は修正可能
インラインRコードを埋め込むことも可能
・作成日をファイル生成日でなく、Knitした日付にしたい場合
→ Sys.Date()関数を使って、date: "2024-11-18"と指定
・subtitle:を使ってサブタイトルを指定できる
・abstract:で要約を入れることも可能
# は章、## は節を作る---
title: "タイトル"
subtitle: "サブタイトル"
author: "作成者名"
date: "`r Sys.Date()`"
output:
html_document: # 字下げする(html_document は output の下位項目だから)
toc: FALSE # 字下げする(toc は html_doc の下位項目だから)
toc_depth: 3 # 目次の深さは 3 まで可能
toc_float: FALSE # フローティング目次はなし
number_sections: FALSE # 目次の通り番号はなし
---toc |
:目次の出力 | デフォルトはFALSE |
toc_depth |
:目次の深さ | デフォルトは 3 |
toc_float |
:フローティング | デフォルトはFALSE |
number_sections |
:通し番号 | デフォルトはFALSE |
html_document: の highligh:
から調整可能highlight: "tango" と指定している---
title: "タイトル"
subtitle: "サブタイトル"
author: "作成者名"
date: "`r Sys.Date()`"
output:
html_document:
highlight: "tango" # ここにハイライトを指定する
---R Markdown 2.3 の場合、10種類のテーマが使用可能