[R] Rmarkdown(xaringan)で学会発表スライド作るときの超初心者メモ

ちょっと放置してあったので一部思い出しながらですがメモ書きです。もう一ヶ月も前になりますが,発表資料をRmarkdownで作って公開するということをしました。これまでならkeynoteで作ってPDFにしてslideshareやspeakerdeckにしてたのですが,分析が結構モリモリでこの部分はすでにRmarkdownで作ってあったので,その部分をベースにして他のスライドを作ってしまうほうが早いと思ってすべてRmarkdownでいくことにしました(結果的にそれで時間が余計にかかった気も笑)。

Rの講習的なものや、論文投稿時に実験データの分析レポートを添えて出す、という時以外でRmarkdownを使う機会が今までなく、学会発表スライドを作るときにいくつかつまずくポイントがあったので、今後同じことにならないように自分用のメモとして残しておきます。基本的なこともきっと含まれていると思うので、本当に初心者向けです。ちなみに、私が使っているのはオンラインプレビューができるxaringanというやつです。

  1. R chunkオプションでcache =T
  2. 画像を2枚並べて表示する
  3. 画像の埋め込みに注意

Cache = Tオプション

分析の結果を提示する際に、R上で分析したものをそのままスライドに埋め込める(いちいち表にまとめ直してパワポに貼り付けるとかの必要がない)というのがRmarkdownの強みですよね。しかし、中には1つの分析にかなりの時間がかかる場合もあります。その分析コードの部分以外のところを修正したりしてknitすると、分析に時間がかかるので修正したかった部分が反映されたのかとかを見るのにも無駄な時間を費やしてしまいます。特に、xaringanはRmdを保存したら自動的にknitするので、こまめに保存しながらやる癖がついていたらなおさら大変です。分析が1度だけならまだしも、いくつも分析がある場合には数時間とかかかることもあるかもしれません。ベイズとかだったらもっとですよね。

で、これを回避するために、分析コードのRチャンクのオプションとしてcache =Tというのがあります。これをすることで、一度knitして分析をすれば、その計算結果を保存しておいてくれます。よって、分析をいちいちし直すことをしないので時間もかかりません。注意点は,この分析コードのあるチャンク内での変更があった場合と、この分析コードのチャンクオプションに変更があった場合にはもう一度分析をやり直すということです。よって,時間を要する分析のコードは最初にcache =Tにして一度knitしてしまい,細かいところをいじるのは後にするというのがいいのかなと思います。

画像を並べて表示

普通にRで描くプロットを並べて出すには,par(mfrow=(c1,2))みたいにしてあげれば1行2列でできますよね。で,xaringanでこれやってもどうしても2枚横並びの表示になりませんでした。そこで色々調べたところ,出力の際の幅を半分にしてあげればよいというアドバイスを見かけたので,Rチャンクオプションでout.width =”50%”としてあげました。画像の解像度はdpiオプションで調整できるので,この2つの組み合わせでいい感じに仕上げてあげればよいのかなと。

画像の埋め込み

これがxaringan使うときのネックになるポイントなのですが,xaringanは画像ファイルなどがself-containedではないんですよね。よって,ウェブ上にスライドを公開しようとしたときにHTMLファイルだけアップロードすればよいというわけにはいきません。GitHubなどに画像ファイルなどもすべてアップロードする必要がありました。もしかすると何か方法があるのかもしれませんが,結局ウェブにアップロードするしか解決策が見つからなかったのでこういう方法にしました。xaringanはオンラインでプレビューできるという点が強みなのですが,アップロードとかにちょっと手間がかかるというのが難点かもしれません。また,画像ファイルもアップロードすることでオンライン上での閲覧は問題なくなりますが,DLすると見た目が変わる&画像が見れないということになるので,他の媒体でPDF公開されているスライドをDLしてオフライン環境で見ることが多いというような方々にとっては,普通にPDFで公開してくれよめんどいなぁということになってしまうのかもしれません。非常に悩ましいです。

おわりに

私自身GitHub初心者なので,毎回やるたびにどうやってやるのかいちいち調べながらやっていて,もしかすると普通のプレゼンソフトでスライド作ったほうが時間かからないんじゃないか…とか思いつつ,無駄なこだわりでRmarkdownを使って投影資料を作るようにしています。他にもいくつかつまづいたポイントがあったような記憶があるのですが,いかんせんもう覚えていないのでとりあえず上記3点だけメモとして残しておきます。R関係については意外と自分が一番助かっているのではないかと思うくらい自分でよく忘れて記事探すことが多いので,これもきっと未来の自分を助けることになると信じて。そして,こうやって書いて公開すると解決策が見つかったりするかもしれないという淡い期待を抱いて….

なにをゆう たむらゆう。

おしまい。

コメントを残す