鶴見教育工学研究所

R言語の講義資料を公開します

はじめに

筆者は、自営業 (法人ではなく) として、教育・研修・人材育成の領域を仕事にしています。基本的には、社会人研修 (BtoB) のセカイで、すでにある教材で9時17時講義したり、研修会社のオーダーに沿った教材を作成して、生活しています。

そんな中で、縁1あって、母校の専修大学で2020年から非常勤講師をしています。当初は学部の必修科目 (200数十人受講) を分担して、他の先生が作成した教材でやっていたのですが、それと別に「Rについての授業をやってくれ」という依頼を受けて、2021年から「応用プログラミング3」という科目で「モダンなRプログラミング」をテーマ (自称) とした講義をしています。

3年目も後半にかかり、そろそろ教材も完成したかなと思うので、公開することにしました。R言語について学びたい、と思っている学生や社会人の参考になれば幸いです。商用・非商用問わず自由に使っていただいて構いませんが、代わりに 何か仕事 (研修、非常勤講師、教材・書籍執筆など) をいただければうれしいです。 そのうち、講義動画も撮影して公開しようと思っています。

なお、R言語の利用目的は一般的に統計解析 (データ分析) ですが、本講義では「分析手法については他の授業で学ぶはずなので触れません」というスタンスで、詳しくは説明していません (説明できませんし)。

講義の概要

(激重🤪) シラバス

シラバスには、以下のように記載しています。

<到達目標>

  1. R言語の近年の動向を捉え、適切な開発環境、パッケージを選択してプログラミングできる
  2. tidyverseを念頭に置いたモダンなデータ分析フローを理解し、分析を実践できる
  3. 機械学習やテキストマイニングなど、分析の目的に応じた手法を選択し、Rプログラムとして実装できる

<講義概要>
データ分析のためのプログラミング言語であるRについて、近年 (2010年代後半以降) の開発動向を紹介し、ビジネスや研究の現場で広く使われるパッケージの活用方法を、実際にプログラミングをしながら学習します。講義を通じて、実践的なRプログラミングのスキルを身に着けることを目標とします。なお、本講義の履修者は、R言語について基本的な知識を有していると想定しています。前提知識として想定するのは以下の事柄です。

【前提知識】※第1回の授業で簡単な振り返り、確認を行います。

  1. Rでファイルからデータを読み込むことができる
  2. オブジェクト (変数) を作成し、要素 (行や列) を参照できる
  3. オブジェクトに関数 (データ加工、グラフィックス、統計処理など) を適用し、結果を得ることができる

実際には、第1回から第2回の授業でR言語の基本については概説していますので、Rをはじめて学ぶ方でも問題ないと思います。

教材とハンズオン環境

教材は、R Markdownで作成し、PowerPoint形式で出力しました。2筆者が軸足を置く (伝統的な) 社会人研修の業界では、PowerPointのノート部分に解説文をしっかりと書き込み、「ノート」表示で出力、A4サイズで印刷というのが主流です。3筆者も、そのやり方で10年以上やってきて、それなりに合理的なところがある4と思っているので、その形式にしています。

実際に講義する際には、スライド部分が全幅で表示される程度に拡大して使用しています。

また、講義内容に対応したハンズオン環境をPosit Cloudで作成し、学生に提供しています。大学ではG Suite for Educationを導入しているので、学生に付与されたGMailアドレスでログインさせていますが、私用のGMailアドレスその他でも無償で月25時間 (CPU時間) まで利用できます。それぞれのハンズオンは、Posit Cloudの無償版 (1 CPU, 1GBメモリー) で実行できるようにデータサイズなどを調整しています。

  1. ガイダンス、Rプログラミングの基本: 教材PDF / ハンズオン環境
  2. Rプログラミングの基本、最近の動向について: 教材PDF / 補足資料PDF / ハンズオン環境
  3. R Markdownによるレポート作成: 教材PDF / ハンズオン環境
  4. GUIによるデータ分析: Radiant等: 教材PDF / ハンズオン資料 / ハンズオン環境
  5. ggplot2パッケージによるグラフィックス作成 (1): 教材PDF / ハンズオン環境
  6. ggplot2パッケージによるグラフィックス作成 (2): 教材PDF / ハンズオン環境
  7. tidyverseによるデータハンドリング (1): 教材PDF / ハンズオン環境
  8. tidyverseによるデータハンドリング (2): 教材PDF / ハンズオン環境
  9. Rによる統計モデリング、機械学習の基礎: 教材PDF / ハンズオン環境
  10. 機械学習フレームワークによる機械学習 (1): 教材PDF / ハンズオン環境
  11. 機械学習フレームワークによる機械学習 (2): 教材PDF / ハンズオン環境
  12. RによるWebスクレイピング: 教材PDF / ハンズオン環境

以降は、順次公開します。

  1. 日本語テキストマイニング (1)
  2. 日本語テキストマイニング (2)
  3. Shinyによるアプリケーション開発 / reticulateによるPythonとの連携 / まとめ

ライセンスなど

教材、プログラムのライセンスは、MITライセンスとします (GitHubリポジトリに設定)。商用、非商用問わず自由にお使いいただいて構いません。ただ、代わりに 何か仕事 (研修、非常勤講師、教材・書籍執筆など) をいただければうれしいです。


  1. 本当に縁だけで、学位も研究実績もないんですが。 ↩︎

  2. 一発で公開しているもののような出力にはならないので、PowerPoint上でそれなりに手を加えて完成させています。公開しているのはPowerPointからPDFに変換したファイルです。 ↩︎

  3. プログラミングスクールや教育ベンチャーはもちろんそうではありませんし、コロナ禍によるオンライン化やペーパーレス化、さらには印刷コストの削減などさまざまな要因で、A4縦の印刷物、というのは絶対的な要件ではなくなりつつありますが、まだまだ大多数です。会社ごとの個別研修では、未だに印刷した教材を事前納品ということも多いです。 ↩︎

  4. 説明したいこと (オプションの細かな相違など) をスライド部分にすべて書き込むと、情報量が過多になり、何かを初めて学ぶ人には負荷になります。また、口頭での説明だけでは聞き逃すこともありますし、後から見返した時に覚えていないこともあります (個人的な感覚として、研修の受講者は講師の話を半分くらいしか聞いていません🤪)。また、今回のように教材だけを公開する場合には、研修ではもっと細かく深い説明をしているのに、スライドだけ見て「内容が薄い」「厳密でない」「こんなのに〇万円?」とか言われるリスクもあります。これは、研修会社の営業が教材を持って提案に行く場合も同様です。そういうことを考えると、結果的にこのスタイルはある程度の合理性があるな、と思っています。実際には、20数年前にOHPやワープロからPowerPointに移行する際に、なんとかA4縦の印刷物を作りたくて辿り着いたのではないかと思いますが。 ↩︎