5講:R Markdownを使ってレポートを作成するには?

 しまうまのRでデータ分析入門【全6講】では、統計解析用のプログラミング言語Rで重回帰分析を行い、R MarkdownでPDF化するまでを解説します。

 5講の内容は「R Markdowndeレポートを作成する」です。次の4段階で解説します。

第一段階:PDFを出力する

第二段階:日本語が書けるPDFを出力する

第三段階:見出し、改行、数式、コメントアウト、脚注を実装する

第四段階:重回帰分析の結果を掲載する

第一段階:PDFを出力する

 R Markdownを使ってPDFを出力します。次の内容を順々に実行してください。

(1)初回時のインストール

 初回時のみ次のコードを実行してください。

#パッケージrmarkdownのインストール
install.packages('rmarkdown')

#パッケージrmarkdownの呼び出し
library(rmarkdown)

#パッケージtinytexのインストール
install.packages('tinytex')

#TinyTexをインストール ※LaTeXが使えるようになります
tinytex::install_tinytex()

# IPAフォントをインストール ※日本語が使えるようになります
tinytex::tlmgr_install("ipaex")

(2)R Markdownの起動

 左上の「+」と「白紙」のボタンを押して、R Markdownをクリックしてください。↓

R Markdownを開く

 次に、Title(タイトル)やAuthor(著者)を適当に入力し、「HTML」ではなく「PDF」にチェックをいれましょう。

 最後に、そして「OK」をクリックします。

(3)knit(ニット)

 次に「Knit(ニット)」を押すと、PDF化の作業に入れます。

 保存先のファイルが選べるので「Desktop」または「デスクトップ」にしましょう。

 デスクトップにPDFが出力されます。

 デフォルトで出てくるコードでknitした場合、出力されるPDFは次のようなものです。↓

R Markdownを開いたときに出てくる初期文書

 

第二段階:日本語が書けるPDFを出力する

 R Markdownを使って日本語が書けるPDFを出力します。次の内容を順々に実行してください。

(1)yamlヘッダ

 「—」で囲まれた部分をyamlヘッダと言います。yamlヘッダは「タイトル」「著者」「出力形式」「フォント」など、文章の基本となる情報をいれるところです。

(2)日本語設定を加えたyamlヘッダ

---
title: "タイトル"
author: "著者"
output:
  pdf_document:
    latex_engine: xelatex
header-includes:
  - \XeTeXlinebreaklocale "ja"
  - \XeTeXlinebreakskip=0pt plus 1pt
  - \XeTeXlinebreakpenalty=0
mainfont: ipaexm.ttf
---

 それぞれつぎのような意味を持っています。

output: #出力形式
  pdf_document: #PDFで出力
    latex_engine: xelatex #LaTeXの中のxelatexを使う

header-includes: #日本語でも自動折り返しできるようにする
  - \XeTeXlinebreaklocale "ja"
  - \XeTeXlinebreakskip=0pt plus 1pt
  - \XeTeXlinebreakpenalty=0

mainfont: ipaexm.ttf #明朝体指定(フォントによっては自動折り返しできない)

(3)日本語が書けるPDFを出力する

 「タイトル」「著者」「日本語の文章が書けます」とのみ書かれたPDFは、次のコードをknitすると出力できます。

---
title: "タイトル"
author: "著者"
output:
  pdf_document:
    latex_engine: xelatex
header-includes:
  - \XeTeXlinebreaklocale "ja"
  - \XeTeXlinebreakskip=0pt plus 1pt
  - \XeTeXlinebreakpenalty=0
mainfont: ipaexm.ttf
---

 日本語の文章が書けます

 

第三段階:見出し、改行、数式、コメントアウト、脚注を実装する

 R Markdownに見出し、改行、数式、コメントアウト、脚注を実装します。次の内容を順々に実行してください。

(1)見出し

 章や節は「#」で作れます。階層が最も高い章は「#」です。階層が下がることに「#」の数が増えます。

(2)改行

 改行は半角のスペースを2個続けるとできます。

(3)数式

 数式はドルマーク$2つで挟んでください。LaTeXでの数式表現が使えます。LaTeXでの数式表現は「LaTeXで数式を書くには?」をご覧ください。

(4)コメントアウト

  <!– と –> で挟むとコメントアウトができます。コメントアウトとはコードに書かれているものの、出力結果に反映されない内容のことです。

(5)脚注

 脚注をつけたい箇所に[^1]、脚注の内容を \[^1]とすると、脚注1をつけることができる。

(6)上記の内容をPDFに出力する

 試しに次の内容をknitして、PDFに出力してみてください。

---
title: "タイトル"
author: "著者"
output:
  pdf_document:
    latex_engine: xelatex
header-includes:
  - \XeTeXlinebreaklocale "ja"
  - \XeTeXlinebreakskip=0pt plus 1pt
  - \XeTeXlinebreakpenalty=0
mainfont: ipaexm.ttf
---

# 第1章 基本文法 

## 1節 見出し 
 「#」「##」で見出しを作成できる。「#」の直前に文字やスペースがあると、見出しが作れない。
 
## 失敗した見出しの例 

## 2節 改行
 改行は半角のスペースを2個続けると→  
 できます。

## 3節 数式
 数式はドルマーク2つで挟んでください。LaTeXでの数式表現が使えます。$e = mc^2$

## 4節 コメント
 下のコードを打つことで、コメントを挿入できます。  
<!--
コメントです。コードだと見えます。
-->
 ↑PDFでは上のコードは見えません。

## 5節 脚注
 R Markdownにも脚注[^1]をつける方法がある。脚注はそのページ下部に小さく記される。

\[^1] 脚注とは、本文の下部に載せる補足情報。意味、解釈、出典が記される。

# 第2章 Rコードを反映させる

 次のPDFが出力されるはずです。↓

直前のコードを実行すると出力されるPDF

第四段階:重回帰分析の結果を載せる

 R Markdownに重回帰分析の結果を載せます。次の内容を順々に実行してください。

(0)準備

 次のパッケージを事前にインストールしてください。wooldridgeはデータセットを呼び出せるパッケージで、stargazerは回帰分析の表を出力できるパッケージです。

#パッケージのインストール
install.packages("wooldridge")
install.packages("stargazer")

(1)Rコードをチャンクにて実行する

 Rコードを実行するには “`{r} と “` で囲まれたチャンクと呼ばれる部分にコードを入れます。

```{r}
library(wooldridge)
head(saving)
```

 試しに次のコードを実行してみてください。↓

---
title: "タイトル"
author: "著者"
output:
  pdf_document:
    latex_engine: xelatex
header-includes:
  - \XeTeXlinebreaklocale "ja"
  - \XeTeXlinebreakskip=0pt plus 1pt
  - \XeTeXlinebreakpenalty=0
mainfont: ipaexm.ttf
---

 点々の間にコードを入れると、チャンクというものになります。コードはこのチャンクの中に入れて実行します。下のコードでは、データセットのパッケージであるwooldrigeをR Markdown内で呼び出し、データセットsavingの冒頭6行を表示しています。残念ながらチャンクに日本語コメントを入れると消えてしまいます。
```{r}
library(wooldridge)
head(saving)
```

 Knitすると、次のPDFが出力されます。↓

(2)include=FALSE

 Rコードを内部で実行するが

・Rコード

・実行メッセージ

の両方をPDFに載せたくない場合、include=FALSEと指定してください。

```{r , include=FALSE}
library(wooldridge)
head(saving)
```

(3)message=FALSE

 Rコードを内部で実行し、Rコードも出力するが

・実行メッセージ

をPDFに載せたくない場合、message=FALSEと指定してください。

(4)results=’asis’

 出力結果を

・markup→マークアップ

・asis→Rの結果

・hide→隠す

から選びます。回帰分析の結果であれば、results=’asis’を選びます。

```{r, results='asis', message=FALSE}
lm1 <- lm(inc ~ educ, data = saving) 
lm2 <- lm(inc ~ educ + age, data = saving)
stargazer(lm1, lm2, type = "latex" ,header = FALSE)
```

(5)回帰分析の結果をPDFに出力する

#readxlパッケージのインストール
install.packages("readxl")

 次のコードをknitしてください。

---
title: "タイトル"
author: "著者"
output:
  pdf_document:
    latex_engine: xelatex
header-includes:
  - \XeTeXlinebreaklocale "ja"
  - \XeTeXlinebreakskip=0pt plus 1pt
  - \XeTeXlinebreakpenalty=0
mainfont: ipaexm.ttf
---
# パッケージの読み込み
 パッケージの読み込みでは、include=FALSEにすると余計なものがPDFに載りません。  
 wooldridgeはデータセットのパッケージです。stargazerは回帰分析の結果を綺麗にまとめてくれるバッケージです。表示はありませんが、ここでlibraryが実行されています。↓
```{r , include=FALSE}
library(wooldridge)
library(stargazer)
```

# 図表の出力
 図表の出力では、results='asis'にしてください。message=FALSEにすると余計なものがPDFに載りません。  
 wooldridgeにあるデータセットsavingを用いた回帰分析lm()をしています。lm1では所得incを目的変数、教育年数educを説明変数にしています。lm2では所得incを目的変数Y、教育年数educと年齢ageを説明変数にしています。stargazerでは、lm1とlm2の結果を、latexで出力しています。header = FALSEにしないとエラーがおきます。
```{r, results='asis', message=FALSE}
lm1 <- lm(inc ~ educ, data = saving) 
lm2 <- lm(inc ~ educ + age, data = saving)
stargazer(lm1, lm2, type = "latex" ,header = FALSE)
```

 そして、「Knit」すると、次のPDFが出力されます。感動です。コードの詳しい説明は、日本語部分を読んでください。

付録:Rを勉強できるサイト

しまうま総研「R入門」:初心者がRをインストールして重回帰分析するまで解説します。

しまうま総研「Rコード集」:Rのコードについて解説します。

矢内勇生「RとRStudioのインストール方法の解説」:Rのインストール方法が詳しく書いてあります。

森知晴「卒業論文のためのR入門」:昔のしまうまがお世話になったサイトです。コンセプトも似ていて、内容も参考にしました。「Rでデータ分析入門」では扱っていない内容も多く含みます。

北川梨津「西山 他『計量経済学』のためのR」:有斐閣の分厚い計量経済学の本の実証例を再現するためのコードが書かれているサイトです。

土井翔平「Rで計量政治学入門」:データの操作、可視化、収集について詳しく書かれたサイトです。

コメント欄 お気軽にコメントをお寄せください!

タイトルとURLをコピーしました