Closed3

R・Pythonの授業用環境

nac-39nac-39

概要

  • 大学のデータサイエンス系の授業で使うRとPythonの環境セットアップについて書く。
  • 今の所のベストプラクティス
  • そこまでガチっているわけじゃないので悪しからず…

書きたいトピック

R

  • RをVSCodeで使う
  • 提出物はRMarkdown
  • RStudio

Python

  • JupyterNotebook
  • 仮想環境

Markdown

ディレクトリ・git管理

nac-39nac-39

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とは?

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入っていない状態ででできるかは未検証です。

  1. HTMLをKnitして出力(「R: Knit Rmd to HTML」)
  2. HTMLをブラウザで表示(VSCodeでファイル名を右クリック→「Copy Path」→検索欄にPath貼る)
  3. ブラウザで印刷画面を出して(⌘P)PDFで保存

補足2: RMarkdownの詳しい資料

R Markdown Cookbook
R Markdown Cookbook(日本語訳)
https://qiita.com/tomotagwork/items/c92fb40a76f56ea16aa4

参考:https://qiita.com/Ikuyadeu/items/ac8f0852a953829151dd

nac-39nac-39

RMarkdownのTips

数式を改行したい

LaTeXでは\\を挿入することで改行することができますが、RMarkdownをPDFにKnitする時に次のように書いても改行されません。

$$
x = 1 \\
y = 2
$$

次のようにaligned環境を使うことで数式を改行することができます。

$$
\begin{aligned}
x = 1 \\
y = 2
\end{aligned}
$$

また、eqnarray環境や、align環境は$$$$で囲わずに使います(pdfにKnitする時にエラーになる)。

このスクラップは3ヶ月前にクローズされました