見出し画像

RMarkdown with VSCode

今までとはまた全然別の記事を投稿します。
H1Bビザの抽選は落ち、EB-2(所謂グリーンカード)を狙っていますが、どうも2回目の抽選があるとの噂もあり、とりあえず様子を見ています。

さて、今日の本題はRmarkdownをVS Codeで使うまでに苦労した内容です。
写真は最近入手した美味しいビールたち。

そもそもの動機

今の仕事では車を使って実験しています。実験データはオシロスコープとCAN通信傍受により取得します。
(本当はパワーアナライザも使いたいけど…)

オシロスコープの取得データでもCAN通信傍受のログでも同じことが言え流のですが、大体にして専用アプリが必要です。
そしてその専用アプリにはライセンスが必要で、ライセンスを持たない人はそのログを見れない、ということがままあります。
専用アプリで取得したデータをcsvに変換して、エクセル上でグラフ作って、特異点などを目視で確認してそこに矢印を引き、そしてそのグラフを画像としてコピーしてパワポに貼り付けて説明を書いて…
実験は好きですがこの時間が好きではないです。実験データをまとめる過程で得られることもいくつかあるのですが、本質的ではない作業が多すぎる…
もっと楽したい!かっこよくやりたい!ということで今回のRMarkdown with VSCode、となりました。

Rであれば(統計的な意味で)変化点検出できますし、そもそもプログラミング言語なので再利用しやすい!ということで、Rを使います。
Pythonでもよかったのですが、過去Rを使ったことがあったので、Rにしました。
Rだけではレポートを作れないので、RMarkdownを使います。
そしてコードエディタはVSCode. 関連するコードエディタもいくつかあったのですが、歳をとるにつれて新しいツールへの抵抗感が増えてくるので、UMLを作成するのに使っているVSCodeを選定しました。
これが誤りだった気がします。

前提(読者想定)

VSCodeは既に使用できている。
ただしRMarkdownは初

環境立ち上げ

当然のことながら、これに苦心しました。
僕のレベル的に細かい制御も不要なので、RMarkdown自体を使うことはそこまで苦労せず、やはり環境立ち上げが一番大変でした。
しかもRMarkdownをVSCodeで使っている人が少ない。

必要だったもの

  • R関係

    • R本体

    • rmarkdown package, languageserver package

  • Pandoc

不要だったもの

RMarkdown All in One
Macユーザには使えるかもしれません。Windowsユーザの僕には特に使えなかった、かつそもそも何も考えずにRMarkdownを使えるじゃん!みたいな思考停止に陥ったため、それがまた時間の無駄に繋がりました。(自分のせいです)

つまづいたところ

まず、Rそのものは、RのGUIで動作確認できました。
しかし、どうやってもVSCode上でRMarkdownで記述した内容をknitできない…
もう忘れましたが、どうもワークススペースが見つけられないみたいなエラー。
過去の経験上、変更権限のないフォルダにそのフォルダがあるとこういったエラーが発生するので3回ぐらいR本体をインストールし直しましたが解決しない。

ということでもう少しマニュアルを読んで、環境変数を覗くことにしました。
そしたら{R_USER}という環境変数が{HOME}という別の環境変数を参照していました。
それ自体は問題なかったのですが、この{HOME}が別のアプリでも使われており、そのアプリのルートフォルダを示していました。
さらにそのパスにRが認めない表記方法があり、結果的にそのフォルダにアクセスできない、という事態が発生していました。

これでなんとかワークスペースにアクセスできるようになったのですが、最後にパッケージの追加ができませんでした。(例えば先のlanguageserver package)
これは結局前述のフォルダ権限の問題でした。ということで4回目の再インストール。これで動きました。
今思えば、REnvironなどを正しく設定すればこの最後の再インストールは不要だったのかもしれませんが、この時点で丸一日分の工数を使い果たしたので追求するのはやめました。

ここまでで役に立ったサイト

環境変数関係は間違いなくここが一番わかりやすかったです。

http://www.agr.nagoya-u.ac.jp/~seitai/document/R2009/Rsettings.pdf

次に有名なスイス工科大学のまとめているページ。環境変数の説明が掲載されている。

最初に必要だったものの説明については下記二つ。


その他

実際に使ってみて、本当に動機通りの効果が得られたかは謎ですが、まあ見た目が小綺麗なドキュメントを作ることはできます。
変化点検出も可能なのですが、1, 2 sample分のギリギリの世界で、実験結果から合否判定をしようとする中で、悠長に変化点検出している場合ではなく、結果的に自分の目で最終調整しています。
数秒オーダーの余裕がある場合は変化点検出にそのまま任せていますが…

ただ、dygraphsでinteractiveなグラフを作れるため、エクセルでパワポに貼り付けて限界まで説明を追記する、みたいなことはしなくても良くなりました。
このinteractiveなグラフを作るにもほぼ1日分の工数を費やしましたが…

この記事が気に入ったらサポートをしてみませんか?