R・Pythonの授業用環境
概要
- 大学のデータサイエンス系の授業で使うRとPythonの環境セットアップについて書く。
- 今の所のベストプラクティス
- そこまでガチっているわけじゃないので悪しからず…
書きたいトピック
R
- RをVSCodeで使う
- 提出物はRMarkdown
- RStudio
Python
- JupyterNotebook
- 仮想環境
Markdown
ディレクトリ・git管理
R
R in Visual Studio Codeのセットアップ
(前提)R本体やRStudioはすでにインストールされていること
1. 拡張機能インストール
- 画面左端の拡張機能タブで「r」と検索して、上から二つを入れる
- R
- R Debugger
2. languageserverをインストール
ターミナル等でRのコンソールを立ち上げる(RStudioでConsoleってなってるやつ):
% R
languageserverを入れる。雑に言えば補完を効かせるために必要なやつ。
> install.packages("languageserver")
3. コードを書いて実行してみる
src/sample.r
などと適当なRのファイルを作って実行してみましょう。
とりあえずShift
+⌘/Ctrl
+Enter
で実行できます。実行結果は下のターミナルに表示されます。
- 他の実行方法
-
⌘/Ctrl
+Enter
: 一行だけ実行 - コマンドパレット(
Shift
+⌘/Ctrl
+p
で開く)でコマンドを検索する
-
RMarkdownを使ってみる
1. RMarkdownとは?
- RとMarkdownが一緒に書ける記法です。JupyterNotebookに似てます。
- 記法など詳しくはこちら: https://kazutan.github.io/kazutanR/Rmd_intro.html
2. RMarkdownをVSCodeで使う
拡張子を.Rmd
にすれば自動的にRMarkdownと認識されます。
注意:Rmarkdownとして認識されないとき
settings.jsonで、files.associations
という項目がある。これはある拡張子のファイルを実際はどのファイル形式と認識すればいいか、という設定である。
ここに、次のように書かれているとRmdがただのマークダウンファイルとして認識されてしまう。もしこの行が追加されていたら削除するとRmarkdownとして認識される。
"files.associations": {
"*.Rmd": "markdown"
}
参考(逆のことやってる): https://qiita.com/yutannihilation/items/1f71c0fedae6e4b8038c
3. RMarkdownの記法
-
マークダウン記法
RMarkdownではマークダウン記法を使うことができます。
詳しくはこの辺のサイトを見て欲しいのですが、簡単に見出し、リスト、コードブロックなどを書くことができます。 -
Rコードブロック
バッククオート三つでコードを囲うことでコードブロックになります。
実行は次のような方法でできます。
-
Run Chunk
:そのコードブロックを実行 -
Shift
+⌘/Ctrl
+Enter
:そのコードブロックを実行 -
Run Above
:一個上のコードブロックを実行
コードブロックの{ }
の中にはPythonなどR以外の言語を指定することもできますが、コードを実行できるのはRだけです。
4. プレビュー
RMarkdownを別のタブでプレビューすることができます。
Shift
+ ⌘/Command
+ P
でコマンドパレットを開き、「R Markdown: Open Preview to the Side」というコマンドを検索しましょう。コマンドパレットは曖昧検索ができるので、雑に「r mark」「preview side」などと打てば出てくると思います。
すると、このように横にプレビューが表示されます!保存するたびにプレビューが更新されます。
5. Knit(エクスポート)
RMarkdownをPDF, HTMLにKnit(エクスポート)することができます。Rmdで書いたレポートをPDFとして出せるのでとても便利です。
ただし、日本語が含まれた文章をKnitするには少々設定が必要です。
そもそもPCにPandocやLaTeXが入っていない場合はそのセットアップが必要かもしれませんが、ここでは省きます。
変換する時にどうやらLaTeXを間に挟んでいるらしい(よくわかってない)のですが、デフォルトで使われているpdflatexでは日本語を使うことができません。そのためいくつか設定を変える必要があります。
最終的に私が使っている設定はこちらです。これをファイルの先頭に書いておくことで、日本語が含まれていてもPDFにKnitすることができます。---
は両方必要です。
ちなみにこの部分の記法はyamlという記法で、---
の中のことをフロントマターと呼んだりします。
---
output:
pdf_document:
latex_engine: xelatex
documentclass: bxjsarticle
classoption: xelatex,ja=standard
geometry: no
---
6. タイトル・氏名・日付を入れる
先ほどのフロントマターに
title: "タイトル"
author: "名前"
date: "`r Sys.Date()`"
を追加することで、このようになります。
補足1: KnitしたいけどLaTeXを入れたくない場合(未検証)
HTMLをエクスポートしてブラウザで開いて、PDFとして保存するのもできます。
pandoc入っていない状態ででできるかは未検証です。
- HTMLをKnitして出力(「R: Knit Rmd to HTML」)
- HTMLをブラウザで表示(VSCodeでファイル名を右クリック→「Copy Path」→検索欄にPath貼る)
- ブラウザで印刷画面を出して(⌘P)PDFで保存
補足2: RMarkdownの詳しい資料
RMarkdownのTips
数式を改行したい
LaTeXでは\\
を挿入することで改行することができますが、RMarkdownをPDFにKnitする時に次のように書いても改行されません。
$$
x = 1 \\
y = 2
$$
次のようにaligned環境を使うことで数式を改行することができます。
$$
\begin{aligned}
x = 1 \\
y = 2
\end{aligned}
$$
また、eqnarray環境や、align環境は$$$$
で囲わずに使います(pdfにKnitする時にエラーになる)。