EmacsでつくるオレオレRStudioから1年、自分の分析環境の変化について
はじめに
遅れてすいません。RStudio アドベントカレンダー2日目です。 一年前のアドベントカレンダーで、こんな記事を書いたら意外と反響がありました。
これを書いたら周りから過激派だの何だの言われましたが、まあ自分の中では楽しくやっていました。 しかし、それから1年たち、自分の分析環境にもいろいろ変化が出てきました。
変化1 使う言語の割合の変化
当時は専らRしか使っていなかったんですが、PythonもSASも同じくらいの割合で使うようになりました。 そのことで、ますますおなじ環境(Emacs)でやりたい欲は強くなりました。
変化2 Rで使うパッケージの変化
当時はせいぜい画像を出力するくらいしかなかったのですが、最近はJSベースのパッケージ(dygraphs, leafletなど)を使う機会も増えました。 しかし、Emacs上ではこれがうまく表示できません。
どうなったか
R
Rに関しては、RStudioの使用機会が増えました。パッケージの補完もでるし、何よりViewerタブに「動かせる図」が出せるのはいいことです。
ただし、やはり自分の思い通りに編集したいという欲もあり、どうしようかなあと考えているところです。Emacs にRStudio のViewer実装するかなあ...
Python
こちらはかなり過激派っぽくなりました。EmacsでJupyte Notebookをやるようになったからです。
Emacsには、Jupyter Notebookを普通に使えるようにする ein パッケージがあります。
ブラウザではなくEmacsでやるメリットの一つとして、 jedi の補完が使えることがあります。デメリットは、Rと同じくpandas データフレームやleaflet系の動くやつがうまく動かないところです。こういうのがほしいときはブラウザでやってます。
ちなみにEmacsでは以下のように設定するとJupyter Notebookが幸せに使えるようになります。
;; --------------------------------------------------------- ;; Ein(Jupyter Notebook) の設定 ;; --------------------------------------------------------- (require 'ein) (eval-after-load 'ein-notebook '(progn (define-key ein:notebook-mode-map (kbd "M-n") 'ein:worksheet-goto-next-input) (define-key ein:notebook-mode-map (kbd "M-p") 'ein:worksheet-goto-prev-input) (define-key ein:notebook-mode-map (kbd "C-c C-n") 'ein:worksheet-next-input-history) (define-key ein:notebook-mode-map (kbd "C-c C-p") 'ein:worksheet-prev-input-history) (define-key ein:notebook-mode-map "\C-c\C-d" 'ein:worksheet-delete-cell))) (defun ein-mode-hooks () ;; 行番号非表示 (nlinum-mode -1)) (add-hook 'ein:notebook-mode-hook 'ein-mode-hooks) ;; jedi を起動 (add-hook 'ein:notebook-mode-hook 'jedi:setup)
結局
RStudioは便利です。これは紛れもない事実です。ただ、Rを書くすべてをRStudioに委ねられない自分がいます。。。