R Markdownで楽々レポートづくり

第3回 レポつく自由自在~R Markdown基礎文法最速マスター

この記事を読むのに必要な時間:およそ 5 分

表はレポートに有効ですね。いくつかの記法があります。ここではパイプテーブルを紹介します。

|種類|価格|度数|意識の高さ|
|----|----|----|---|
|ビール|程々|程々|程々|
|ワイン|ピンきり|高め|高め|
|日本酒|ピンきり|高め|高め|
種類 価格 度数 意識の高さ
ビール 程々 程々 程々
ワイン ピンきり 高め 高め
日本酒 ピンきり 高め 高め

画像・ハイパーリンク

ハイパーリンクは[テキスト](リンクアドレス)という形式です。

R Markdownの公式サイトは[こちら](http://rmarkdown.rstudio.com/)です。

R Markdownの公式サイトはこちらです。

画像の挿入は![画像タイトル](アドレス "alt属性")という形式です。

![gihyo.jpのロゴ](http://image.gihyo.co.jp/assets/templates/gihyojp2007/image/gihyojp_logo.png "gihyo.jpのロゴです")
gihyo.jpのロゴ
gihyo.jpのロゴ

引用

行頭に>で引用ブロックです。引用ブロック中で改行するには行末に2つの半角スペースをおきます。

> ここは引用に
> なります。  
> 次の行です。

(HTMLでは)次のように出力されます。

ここは引用に なります。
次の行です。

他にも数式やコードブロックなどがあります。 さらに知りたい方はpandoc拡張マークダウンを参考にしてください。

コードチャンクの処理の制御

R Markdownファイルの基本形は次の通りです。

---
title: "タイトル"
author: "作成者"
date: "作成日"
output: html_document
---

```{r setup, include=FALSE}
# セットアップチャンク
# パッケージのロード,データ読み込みなど,Rオプション設定など
library(foo)
options(width = 1000)
dat = read.table("hoge")
knitr::opts_chunk$set(echo=FALSE) # 全てのコードチャンクに適用されるオプション
```

```{r analysis, include=FALSE}
# 解析コード
```

マークダウンテキスト ・・・

```{r table-head, echo=TRUE}
# 表の出力
knitr::kable(head(iris))
```

マークダウンテキスト ・・・

```{r plot-head, fig.width=5, fig.height=3}
# グラフの出力
plot(haed(iris))
```

マークダウンテキスト ・・・

一番上の---で囲まれた部分はYAMLフロントマターと呼ばれるもので,レポートのメタ情報を指定したり,出力フォーマットを指定したりします。YAMLフロントマターは省略しても構いません。この場合はデフォルトの設定でHTMLレポートが出力されます。YAMLフロントマターについては次回詳しく説明します。

セットアップチャンク

YAMLフロントマターの後に,マークダウン記法によるテキスト,セットアップを行うコード,解析コード,グラフや表出力のRコードなどが続きます。

Rのコードはコードチャンクに記述します。上の例では最初に,

```{r setup, include=FALSE}
# セットアップチャンク
# パッケージのロード,データ読み込みなど,Rオプション設定など
library(foo)
options(width = 1000)
dat = read.table("hoge")
knitr::opts_chunk$set(echo=FALSE) # 全てのコードチャンクに適用されるオプション
```

というセットアップチャンクを置いています。ここではパッケージの読み込みやRのオプション設定,その他,レポート内のコード全般に関する設定などを行います。セットアップチャンクは必須ではありませんが,R Markdown全体の見通しが良くなるのでオススメです。

著者プロフィール

高橋康介(たかはしこうすけ)

東京大学先端科学技術研究センター特任助教。専門は認知科学,認知心理学,認知神経科学。どうやったら人が幸せな気持ちになれるのか研究中。著書に「R言語上級ハンドブック」(分担執筆・C&R研究所),「ドキュメント・プレゼンテーション生成」(共立出版)。趣味はラテ・アート。