このドキュメントは TokyoR98 で説明したTokyoR98 RMarkdown入門 Visual modeではじめようの資料の補足で作成したファイルの更新版です(ややこしいね)。
本ドキュメントはTokyoR102で使用予定です。このファイルはTokyoR98版にVisual Editorの操作について追記したため、こちらが上位互換になりますが、表示例のみ確認する場合は旧版の方が見やすいかもしれません。プレゼン資料とは相補的になっている(はず)ので、必要に応じてそれぞれ参照してください。
R MarkdownをVisual Editorで執筆することに慣れるために、記法のサンプルを置いています。RmdファイルをVisual modeで開いて、対象の書式にカーソルを置くとポップアップ表示が出たり、右側に(…)のボタンが表示されたり、エディタ上部の対応するボタンがハイライトされたりします。自分で書き換えたり、Source modeとVisual modeを切り替えて記法の対応関係を覚えたりすることに使ってください。また、outputを色々と書き換えて、knitしてください。ただし、本ドキュメントで説明していない記法もあります。 Visual R Markdownのページもあわせて確認してみてください。
後半は表示例および記法とPandoc内でのデータ形式と紐づけて説明しています。詳細はPandocのマニュアルを参照してください。実際に見えるものを触って、内部のデータ構造(表現)との対応関係を理解した方が良いと考えているためこのような構成となっています。
RStudioのマニュアルとして、R Markdownに関してはツールバーの [Help] - [Cheat Sheets] から見れる R Markdown Cheat Sheet、R Markdown Reference Guide などがあります。また、Markdownの記法については同じくツールバーの [Help] - [Markdown Quick Reference] でHelpに記法の一覧が出てくるので、これを見ながらでも良いでしょう。
Visual modeを常に有効にする場合は、RStudioの[Tools] - [Global Options…] から、R MarkdownのVisualタブ、GeneralにあるUse visual editor by default for new documentsにチェックを入れてください。
以下、Visual modeで使用しているとき(Visual Editor)の上部に現れるツールバーの各ボタンの操作について、対応するMarkdown記法とリンクづけて説明します。
Markdownは記号によって意味づけをし、この文字のまとまりは見出しであるというようにコンピュータ側(Pandocなど)に理解しやすい記法となっていますが、慣れないうちは見てもイメージがわきにくいと思います。実際に使ってみて、操作と対応関係をつけて覚える方が良いかもしれません(と思ってこの構成にしています)
ソースモードとビジュアルモードの切り替え。
点ではじまるリストをつくる。連続して並んでいる行はひとつのリストになる。分ける場合は空行を挟む。
Visual Editor上ではリストにカーソルを置くと右側に(…)のアイコンが出る。クリックすると下記のようにList typeの切り替えが出来る。Tight layout…にチェックを入れると、リストのアイテム間のスペースが狭くなる。
リストを分ける場合は間に空行を挟むと別の番号つきリストとなる。
設定で開始番号、スタイル、デリミタの指定が可能。
ファイル内や外部のファイルへのリンクを作成出来る。
Link to
でURL、Heading、IDが選択できる。
外部のファイルはURLを指定する。ファイルパスを指定すればローカルファイルも参照できる。
Windowsの場合は絶対パスかつデリミタは\
ではなく/
でないといけない。Mac/Linuxは未調査。
Visual Editor上でリンクをクリックして(対応したアプリで)ファイルを開くことも可能。
ファイル内の見出し(Header1-6)へのリンクはHeading、IDを振っている箇所にはIDでそれぞれリンク先を指定できる。
Attributes持ちの要素はIDを設定できるため、このように画像へのリンクも出来る。見出し(Header)はPandocで処理する際に自動的にidが振られるが、Visual Editor上では明示的に指定したものだけ候補に現れる。
FileのパスやURLを指定して画像を貼る。Visual Modeで画像を貼り付けすると作業ディレクトリにimages
というフォルダが作られ、paste-********.png
というファイル名で画像が保存される(下記画像もペーストして自動で保存・埋め込みがされている)
挿入する物についてまとまっている。ショートカットキーはAnyだけ覚えておけば全て対応出来る。
Code ChunkはR
, Python
, Bash
, Rcpp
, SQL
, D3
, Stan
のコードを挿入できる。
Table、 Figure/Image、 Link、 Citation、 Footnote、LaTex Math Definition、 Special Characters、Paragraph、Div、Horizontal Rule、Code Block、YAML Block Comment(未対応箇所はいずれ Visual Editor 補足 に追記予定)
Citatioin
表、行、列の挿入および削除、列の左右中央揃え、ヘッダ、キャプションの設定が可能。Markdownの表を手書きで作るのは苦行なので、ちょっとした表を作る時に非常に便利。Word上での操作とほぼ同じように使える。作成した表の見た目は表で説明。
ドキュメントのアウトラインを表示する。
OptioinのR Markdown、BasicのShow in document outlineで「Sections Only」、「Sections and Named Chunks」、「Sections and All Chunks」が選択できる。全てのチャンクを表示するようにすると名前付けを忘れたチャンクを見つけやすい(?)。
なお、エディタ左下からもジャンプできる。チャンク名は斜体なので他と区別できる。
追記予定
以下、Pandocのマニュアルへのリンクを貼り、表示と記法とを対応させた形でそれぞれを説明していく。それぞれがVE上ではどこから入力すれば良いかは、Format か Insert のどちらかにあるので探してください。
インライン要素は文中の要素のこと。文字やその装飾などのこと。
第98回R勉強会@東京 URLと表示する文字、マウスカーソルを合わせたときにPop upする文字を指定可能。
画像はインライン要素 なので本来このように行中に書けるのだが、Visual Editor上で扱おうとするとうまくいかない。ただし、出力先では行中に出力されているはずである。バグなのかこのように表示するとCaptionが表示されなくなる。
画像への相互参照、図3.1へリンクが貼られる。
脚注1はInsertのFootnoteから入れるコトができる。肩の上の数字をクリックすれば脚注の文字列を設定できるので便利。Linkや画像に次いで記法がややこしく感じるため、恩恵はでかい。
\(\sin x +\cos x\)のように、通常の文中に入れる数式の記法。
以降で説明してるものはいわゆる段落となる要素。行単位の要素(行単位でなく連続した文はひとつの段落と扱われます)
リスト要素1
リスト要素2
番号つきリスト
番号付きリスト
引用文に使用。
引用(citation)は (rmarkdown?) のような形式で書く。書式はcssやCSLなどを修正して対応してください。
Visual Editor 上での操作は Table にて。Rが生成するものはRでやるべきだが、VE上でもかなり表の編集はしやすくなっており、ExcelやHTML上の表からのコピペも出来る(Excelから貼ると空行空列が入るが、行や列削除も容易)ため、ちょっとした表をつくるのであればむしろVE上で加工した方が早い。ただし、出力先のフォーマット次第で体裁は崩れてしまう点には注意。
左揃え | 中央揃え | 右揃え |
---|---|---|
11 | 12 | 13 |
21 | 22 | 23 |
レイアウト上で行全体を使い、地の文と分ける時に使用。
\[ f(x)=\dfrac{1}{\sqrt{2\pi\sigma}}\exp(-\dfrac{(x-\mu)^ 2}{2\sigma^ 2}) \]
単体では特に意味がなくAttributesのidやclassを指定して特別な意味を持たせるために使う。
Visual Editor上ではこのように色がつくが、特別な意味を持つidやclassを持たなければ普通の文章と変わらない形で出力される。
以下はまだ手がついていません。
コードブロックとインラインコードがある。イ ンラインコードは文中に入れることが出来、R version 4.2.1 (2022-06-23 ucrt) のように書き、knitするとコードが実行結果に置き換わりレンダリングされる。pythonなどが指定できるコードブロックと違い、インラインコードはrのみ。
Rのコードのまとまりをチャンクと呼び、チャンク単位で実行することが出来る。
1つ前のチャンクまでを実行するボタンと、このチャンクを実行するボタンがある。
このボタンで実行するとき、Rの環境はR Markdownの環境ではなく、RStudioの環境なので注意(既に環境中にある変数に影響がある・影響を受ける)
(a <- 1) #()で囲むと代入した値が出力される
## [1] 1
チャンク名をsetup
にすると、チャンク実行時の前処理として実行される。
また、チャンクに名前をつけると相互参照などで参照できる。
チャンクオプションを指定できる。echo
、eval
, include
などは必須。他 は必要に応じて。{
}
の中で,
を入力すると入力補完が出る
Figure 3.1: cars plot
ggplot(mtcars, aes(x=wt ,y=mpg,color=hp))+geom_point()
表はYAML中で df_print
を指定する、チャンク内に paged.print=TRUE
を指定するなどするとページ区切りの表になる。表を作るパッケージも沢山あり、 knitr::kable
、 kableExtra
、 flextable
、 gtsummary
、 skimr
パッケージなどがある(単純な表作成だけではなく、集計をするパッケージも含む)
mtcars
脚注はhtml形式の場合は一番下に表示される↩︎