R
Markdown

【まとめ】RMarkdown2で何が変わったのか?

More than 3 years have passed since last update.

もう全てRMarkdownでいいんじゃないかな、最近そんな気がします。

先日、RStudioがv0.98.932に更新されて、公式ブログにてRMarkdown2への対応が取り上げられていましたね。旧RMarkdownから新しいRMarkdownで何が変わったのか、という点を個人的にまとめてみます。勉強不足(特にRの中身的な話)なところはコメントなどで指摘してくださると助かります。

細かいところは習うより慣れろの精神でとにかく使ってみる、公式ページのマニュアルを読むなどしてください。最後にあげた参考ページもとても良いです。

RMarkdownとは?

その名の通り、MarkdownでR言語のスクリプトの実行とコメントの記述ができる拡張子です。Rのスクリプトや出力結果、プロットした図とコメントを一括して記述できることに利点があると思います。

また、RStudioの機能を使えば、簡単に.Rmdから.html, .mdへの変換が可能です。なお、ここではRStudioの機能を使ったRMarkdownの話に限定しています。

ちなみに、RMarkdownで.pdf.docxに変換する際には別途pandocをインストールしている必要があります。

v1からv2での大きな変更点

  1. .Rprofileの設定は読み込まれず、使用するパッケージや設定のための関数は.Rmd内で記述する必要がある。
  2. 従来の.Rmdファイルに加え(通常の書類とプレゼンテーション形式)、Shiny形式のファイルとテンプレートファイルから作成できるようになった。
    • .Rmdファイルを新規作成したときにタイトルと著者名を任意で書けるようになった。
    • プレゼンテーション形式としてBeamerだけでなくHTML5に対応したiosslide、reveal.jsが選べるようになった。
  3. knitしたときの出力結果として.mdが排除され.html, .pdf(LaTeX/PDF), (みんなだいすき(棒)).docxの3ファイルから選べるようになった。
    • .htmlでの出力形式には通常のものに加え、
  4. .htmlで出力したときに保存される図のパスの初期値がfigure/以下でなくなった。

公式ページで書かれていること

  • 上付き文字の構文がちょっと変わった(superscript^2^)
  • LaTeXでのワードプレススタイルの数式構文はサポートされなくなった
  • HTMLの構文内にあるmarkdownも表示される
  • knitrキャッシュに関して... inputfile_cacheのようにキャッシュファイルがそれぞれ作成するようにしなければいけなくなった。

headerの変更

.Rmdファイルを新規作成するとこんな感じ。こちらのheaderのoutput以下をいじくることでいろいろと変更ができます。

---
title: "Untitled"
author: "author name"
output: html_document
---

ちなみに従来はこんなんでした。

Untitled
===================================

output: html_documentの設定

テーマ(CSS)やハイライトのスタイルを細かく指定できます。テーマを指定することで.htmlの見た目(CSS)が変更されます。使用可能なテーマはdefault, cerulean, journal, flatly, readable, spacelab, united, cosmoがあります。

---
title: "Untitled"
output: 
  html_document:
    theme: united
    highlight: tango
    toc: true
      toc_depth: 2
---

それぞれのテーマで表示するとこんな感じになります。英語だとばっちりきまりますね、日本語の場合は、次の俺俺CSSにしたほうが無難そうです...。

rmarkdown-theme.png

俺俺CSSで表示させたい場合(styles.cssの読み込み)

title: "Untitled"
output:
  html_document:
    theme: null
    highlight: null
    css: styles.css

細かいことは公式のマニュアル嫁。...時間があればまとめたいです。

その他

knitr開発者のYihui XieさんによるRMarkdown2の紹介

従来のRMarkdownがヨカッタヨ!という場合

コメントアウトで対応できる模様。

<!-- rmarkdown v1 -->

参考