R
による Data Science のはじめの一歩。
R
と、RStudio Cloud の紹介、R
と RStudio IDE の Install、簡単な使い方を説明します。 そのあとで、R
の基本を学ぶ、Site の紹介をします。
Data Science は、実際の Data や、それをグラフに表したものを見て興味をもったり、ある Data から得られる事実の説明に疑問をもったり、新しい AI の活用に驚いたりすることが出発点です。そして、自分でも、元の Data を調べ、新たな発見をしたり、根拠や、どの程度の確実性があるかを考えたり、AI にどうしてそのようなことが可能なのか、便利さの影になにか問題は潜んでいないのかを調べてみようと行動を起こす。それが、はじめの一歩です。
本を読んで学ぶことも必要になりますが、まずは、実際の Data にあたることです。しかし、元の Data は膨大なことが多く、ほとんどの場合、目で観察したり、手計算では、手に負えません。Data をいろいろな角度から見、いくつもの切り口で特徴を捉え、グラフなどを使って結果を視覚化するために、コンピュータ言語 R
を活用します。RStudio は R
を使いやすくするために開発された、総合開発環境 (Integrated Development Environment (IDE)) です。
R
and RStudioR
R is ‘GNU S’, a freely available language and environment for statistical computing and graphics which provides a wide variety of statistical and graphical techniques: linear and nonlinear modelling, statistical tests, time series analysis, classification, clustering, etc. (https://cran.r-project.org)
R
を管理している CRAN (The Comprehensive R Archive Network) にある、R
の説明です。「統計解析とグラフ作成のための言語と環境」とあり、様々な Data Analysis(データ解析)や数理モデル(Mathematical Models)に対応していることがわかります。最初に、‘GNU S’ とありますが、GNU は、Free Software の意味だとして、Free の意味についても、GNU の Site に書かれています。‘S’ とありますが、これは、R
の母体となっている、米国の、Bell Laboratories(ベル研究所)で開発された統計解析ソフトの名称です。
Let’s try
R
online! RStudio Cloud を使ってR
を Online で。
R
は RStudio を使って利用することが一般的になっています。R
や RStudio (desktop RStudio IDE) も Free(無償)で、手元の (Local) Computer に Install することが可能ですが、まずは、Online で R
を RStudio で使う方法を紹介します。大学・研究機関などでは、RStudio Server を導入しているところも多いと思いますが、ここでは、Free Open Online な、RStudio Cloud を紹介します。
R
の利用について
R
and RStudio自分のコンピュータに、
R
や、RStudio を Install しましょう。 しばらくは、Online だけで学びたい場合は、この項は飛ばしてください。
インターネットが自由に使えない環境にいる場合もあるでしょうし、RStudio はまだ、beta 版ですから、個人で使える、パソコンがある場合には、R
や、Rstudio を Install しておきましょう。まず、R
を Install してから、RStudio を Install します。
R
の Download and Installation
この R
を、Application として立ち上げれば、Console が現れ、そのまま使えますが、R
の Integrated Development Environment(IDE 総合開発環境)である、RStudio IDE を導入します。
RStudio Desktop IDE, Open Source License, Free, そして Download と書いてある下に、Learn More とありますから、それを、Click すると、中程に、‘Take a tour of RStudio’s IDE’ と書いてある、Video があります。ざっと見てみるのもよいでしょう。なとなく、概要(雰囲気)がわかります。
さらに、CLICK HERE TO SEE MORE RSTUDIO FEATURES へと進むと、もう少し情報を得ることができます。急ぐ必要はありません。使い始めてから、このページ に戻ってくるとよいでしょう。
R
on RStudioここまでで、準備 OK です。RStudio Cloud または、RStudio Desktop IDE で R を使うことができるようになりました。
少し、RStudio 上で、R
を使ってみましょう。
3+5
といれて、Enter (Enter Key, Carriage Return (CR) でもかまいません)してください。[1] 8 と出て、新しい、\(>\) が現れます。次に、7*24
と入れてみてください。[2] 168 一週間の時間数が現れます。次に、plot(cars)
と入力してみてください。右下の Pane の Plots Tab に、下のようなグラフが現れるはずです。 R
には、付属のデータがたくさんついていて、これは、Speed and Stopping Distances of Cars(自動車のスピードと制動距離)のデータです。右下の Pane に Help という Tab があると思います。その pane の右上に、虫眼鏡マークの、Search Box があると思いますから、そこに、cars と小文字で入れてみてください。その情報が現れます。今度は、その Search Box に、plot と入れてみてください。manual(説明)が現れます。3+5
, 7*24
, plot(cars)
が現れると思います。swirl
(Statistics with Interactive R Lerning)R
には、現在、15,000を越える、公式に認証され CRAN に登録された Packages(パッケージ、プログラム集で、Data がいくつも含まれているものもある)があります。Open Software ということで、世界中の Users が、Program を作成して、形式を整えて、登録してあり、それを利用することができます。教科書や、コースで利用する、Program や、Data を集めたものもあります。tidyverse
という Package の場合には、利用するときには、ggplot2
, purrr
, tibble
, dplyr
, tidyr
, stringr
, readr
, forcats
と 8つの Package を同時に読みこむようになっています。さらに、Install するときには、他の関連する Packages も、読み込まれます。いずれ使うようになりますので、Install してみましょう。tidyverse
と入力してみてください。途中まで入力すると、候補がいろいろと現れ、spell(つづり)を間違っていなければ、tidyverse
だけが残りますから、Install ボタンを押してください。ちょっと時間がかかりますが、Console に次々とメッセージが現れ、最後に \(>\) が現れます。RStudio IDE のときは、どこから、Download するかを聞かれるかもしれませんが、そのときは、どれかを選んでください。近いところのほうが一般的には Install の時間が短くなります。どのようなものか見たいときには、また、右下の Pane から、Help Tab を選んで、tidyverse
と入れてみてください。vignette
と現れ、その右に、選択肢が現れます。Manual よりもう少し、詳しい情報が、わかりやすくかかれているものが、vignette
です。すべての Package にあるわけではありませんが、Manual だけでは、わからないことも多いので、これがあると便利です。(Console に、install.packages("tidyverse")
と入力し Enter をしても同様のことが可能です。)ちょっと小休止。ここまでを Video と Exercise で確認してみませんか。Skip してもかまいません。
確認とExercise (learnr
で作成されています。learnr
に興味のあるかたは、この Link の左にある Welcome および、learnr
を参照してください。)
swirl
package を Install してみましょう。同じように、Menu Bar の Tools から、Install Packages … を選択します。Packages という枠に、swirl
と入力して、Install です。swirl
は、Johns Hopkins University で開発された、学習用の package で、これを作るための、Package も用意されています。swirlify
です。library(swirl)
です。Console の \(>\) の次に、library(swirl)
として Enter、そして、swirl()
と入力すると、学習プログラムが始まります。ちょっとした説明のあと、“What shall I call you?” と表示されます。名前でも、Nickname でも、イニシャルでも入れてください。このあとは、あなたのことを、この名前で呼ばれます。そのあとは、“…” まで読んだら、Enter と言う説明がありますから、また Enter。1 Continue., 2 Proceed. , 3 Let’s get going! の選択がでます。どれでもよいので、番号を入力してください。次に、途中でどうするかの説明があります。ともかくやめたいときは、ESC(Escape Key)、\(>\) が出ていて、そこまでを保存してやめたいときは、quit()
他にも、いくつも選択肢があることがわかります。次には、1: R Programming 2: Take me to the swirl course repository! と出ます。1 を選ぶのがよいでしょう。2 を選ぶと、Pop-up window が出ます。Browser がそれを、Pop-up を表示しない設定になっていると、一旦終わります。1 を選ぶと、1-15 の項目が現れます。どれからでもよいですが、R
について何も知らない場合は、1 からトライしてみてください。\(>\) が出ているときには、quit()
、\(>\) が出ていないときに、ともかくやめたいときは、ESC です。Interactive Lesson を楽しんでみてください。続けて、swirl
でしばらく学ぶのも良いでしょう。他の、Learning Resource を、下で紹介しますが、その前に、RStudio での次の大切なステップを紹介します。
R
の一つ一つの、Command であっても、記録のために保存しておくことが重要になります。
ある程度の長さのプログラムになれば、なおのことです。Reproducibility(再現性)のためにも、大切です。そのためには、Console ではなく、R Script を利用して、記録します。
下の、三行を、入力するか、copy & paste をしてください。
data(cars)
head(cars)
plot(cars)
plot(cars)
のグラフが現れたと思います。Source では、その RScript の最初からすべてを、実行します。Plots の pane には、Exports ボタンもありますので、画像として、取り出すことも可能です。また、Zoom で拡大することもできます。head(cars)
の後ろに、マウスなどで、carret(入力位置)をおき、または、その行を highlight(選択)して、Run ボタンをおすと、head(cars)
が実行されて、Console に、cars という data の最初の6行が現れます。(下のような内容です。)一行または、highlight した箇所が実行されます。
head
と入れてみてください。Return the First or Last Part of an Object と出てきます。何も特別な指定をしないと、通常は、最初の6行が現れます。Help の一番下にある、Example を R Script のところに入れて、試してみるとよいでしょう。たとえば、head(letters, n = -6L)
では何が現れますか。Help をよく読むとわかります。letters
を、cars
にするなどして、試してみてください。Menu bar の File から Save を選んで、保存すれば、そこまでの状態をあとから、Reproduce(再現)することも可能です。
どうですか。R Script の使い方、R Studio の機能、少し理解できましたか。
R Script などで、実行したことを、説明も含めて、R Markdown, R Notebook で文書として記録することで、Reproducibility(再現性)だけでなく、Literate Programming(理解できるように記録すること)が可能になります。
plot(cars)
が —{r} から — までで囲まれている部分をさします。Run ボタン(Code Chunk の右上にある、右をむいた三角印のことです。)を押すか cursor(カーソル)をその Chunk の中に合わせて、Cmd+Shift+Enter を押すと、実行することができるとあります。やってみてください。この Chunk の下に、グラフが現れます。右上には、X がありますから、それ押せば消えます。head(cars)
と書き入れてみてください。knit
とあり、knit to HTML, knit to PDF, knit to Word と選べるようになっているかもしれません。それを選択すると、HTML(ホームページの記述に標準的に使われる、Hypertext Markup Language)か、PDF(Portable Document Format)か、Microsoft Word file になります。RStudio Cloud では、最初、Pop-up が block されていると、表示されませんが、Retry をすれば、表示されると思います。tinytex
というプログラムを Install します。また、日本語が含まれるときには、少し修正が必要です。別途解説します。特に、すでに、LiveTeX
などを、Local に Install されているときは、調整が必要です。yaml
と言われる部分に、引用した箇所のように、reference_docx: my-styles.docx
を加えれば、次からそのフォーマットで、output してくれます。R Markdown Overview: R Markdown の概要の Video を見てみませんか。
Note 備考
R
の update(更新): Installation と同じ方法で行います。作業の途中はさけてください。挙動が変わる場合もたまにあります。R.version
Command などで、version を確認して、net 上で調べてください。More information on Markdown Syntax and Markdown Editors
R Markdown
は、Markdown という記述言語に、R
の Code Chunk の機能を加えたものですが、これを頻繁に使うようになると、RStudio の Help に書かれている情報より、もう少し詳しい説明が欲しくなります。 また、日本語入力において、RStudio では、困難を覚えるかもしれません。
Markdown
についての、正確な情報が書かれています。Pandoc は、universal document converter で、様々な Format(形式)の文書の、変換を行うもので、R Markdown
の文書を、html や、MS Word file に、書き換えるときに、使われているものです。Markdown
Dingus: [DARING FIREBALL: Markdown] (https://daringfireball.net/projects/markdown/)] にある、Dingus(「なんとか言う奴」という程度の意味)。日本語入力のときは、RStudio と比較して、入力がスムーズです。Online の Markdown Editor として利用できます。Filter を Markdown、Results を Preview にして、Convert を押します。他にも、Online の Markdown Editor はいくつもあります。入力と同時に、Preview が表示されるものもあります。好みのものを探してください。R
Console もあり、R Markdown も使えるようになっています。Package 管理の問題もあるため、詳細は紹介しませんが、個人的には、Markdown Editor として活用しています。(管理者権限のないコンピュータに Package を Install する場合は、たとえば Oracle のページ・(日本語)を参照してください。)はじめて、
R
や RStudio に触れるひとは、この項は読み飛ばしてください。
RStudio Site の上の Resources の Webinar & Videos を見てみましょう。R
や Data Science についての知識をある程度お持ちで、先回りして、RStudio について知りたい方にお勧めです。
最新のニュースについても知ることができます。
R
の文法、R
や Package の Command(命令、R
では Function(関数・機能)と呼ばれます)の詳細は膨大で覚えることは不可能です。
基本をある程度理解し、あとは、Manual や、Help を調べ、Examples を通して学びます。
Internet 上で検索して調べること、Blog などでの、Discussion から情報をえることも必要な場合が多いですが、まずは基本を理解しましょう。
R
Introduction to
R
は、CRAN (The Comprehensive R Archive Network) で編集している、短い Manual です。常に Update し最新の情報になっています。
R
の日本語版も、Internet 上に、いくつか公開されています。構造が大きく変更になることは、あまりありませんし、三桁の version 名の最初の一つが同じならば、殆ど問題はないと思います。しかし、最新版というだけではなく、用語などを考えると、英語のものを利用する価値は十分にあると思います。また、実際に使うときには、他の、Site の英語の説明を参照することも多くなります。R
についてなど、基本事項の紹介のあと、読者に二件書いてあります。
R
の実際についての基本についてわかります、とありますから、見てみることをお勧めします。
R
には、膨大な Packages があり、それを日常的に利用します。一つ一つの Package については、Introdution toR
には書かれていません。また、上の Manual ではなく、RStudio の画面などで、Help を利用する方が簡単です。Help の使い方を基本から紹介します。
R
’ の項でも紹介した、Appendix A の最初に、help.start()
について、Start the HTML interface to on-line help (using a web browser available at your machine). You should briefly explore the features of this facility with the mouse. とあります。これを、RStudio の Console や、R Script で、Command として実行(run)すると、RStudio の 右下の Pane の Help Tab に、‘Statistical Data Analysis R
’ と現れ、最初に、‘Introduction to R
’ が現れます。ここからも、この文書を見ることができます。‘The R
Language Definition’、‘R
Data Import/Export’, ‘Packages’, ‘R
Resources’ は、すぐにでも役に立つと思います。head
, mean
(平均), sd
(標準偏差), plot
, summary
, tidyverse
, ggplot2
などを調べたいとき.
?head
Enter。??head
Enter。それぞれどのように表示されるか、比較してみてください。
tidyverse
や ggplot2
などの、重要な Package の場合は、Vignette が表示され、かなり詳しい説明にアクセスできます。plot
などで、Help に表示されるものが長い時は、さらに、検索が必要な場合もあります。RStudio の時には、虫眼鏡の次の行の Box に調べたい Key Word を入力すると、その Help のページ内で、検索してくれます。Help の活用は、とても、有効ですから、Internet での情報を探す前に、まずは、Help を活用してください。
Data Science を学ぶ、一番良い方法は、実際の Data を自分で分析してみることです。しかし、基本を学ぶことも必要です。本などで、基本を知識として学ぶこともできますが、能動的に、実際に、
R
を使いながら、学ぶことが近道であると思います。知識と、実際の分析の間を埋めるのが、対話型の Exercise 形式で学ぶ、Interactive Learning Tool です。
R
の基本を Interactive に学ぶことのできるサイトはたくさんありますが、主として、RStudio Primers と、すでに、少し紹介した、R
の Console 動作する Swirl について説明します。
Interactive Tutorials が Free Open Online で提供されています。今後、Contents が増えていくことが期待されます。
ggplot2
入門の、Visualization Basics と、Programming Basics にわかれています。最初から、ggplot2
の Package は load されています。もし、R Script や、R Markdown, R Notebook などに記録するときは、最初に library(ggplot2)
を実行してから始めてください。問題は R for Data Science からとられています。Solutions to Exercises of R for Data Science の答えも公開されています。R
の基本的なデータ形式は、Data Frame ですが、より、扱いやすい、tibble
および、それをあつかう、dplyr
Package についての問題です。ggplot2
で扱う、様々なグラフについての問題です。tidyverse
を学ぶ問題です。R
で Program を書くときに、必要なことを学びます。Console を利用して、対話型で学ぶコースを提供する、Package です。基本的なことを学べるコースがすでに用意されています。下のような説明があります。
Use the R console as an interactive learning environment. Users receive immediate feedback as they are guided through self-paced lessons in data science and R programming.
swirl
} website: swirl
の解説とともに、swirl
を開発するための swirlify
の説明もあります。swirl
Course Repository
swirl
courses, タイトルと、著者に分けてコースリストがあります。swirl
Package, Manual in PDFswirlify
Package, Manual in PDFswirl
Course Repository 参照)以下のサイトは、いずれも、Sign-Up が必要で、また、すべてのコースを受講し機能を利用するのは、有料です。ただし、無償でも、基本は学ぶことができます。他にも似たサイトがあります。
R
だけでなく、様々なコースを提供しています。一定期間は、すべての機能が利用可能です。Data Camp は、システムも提供しており、HarvardX Data Science でも利用しています。R
だけでなく、様々なコースを提供しています。R
だけでなく、様々なコースを提供しています。R
では、28 exercises を無償で試すことができます。調べるときに、便利なサイト、大学で提供している、学習支援サイトをいくつか紹介します。
MOOCs (Massive Open Online Courses) や、Bookdown で書かれ Online で提供されている教科書などについては、Resources のページを参照してください。
多くの大学が学習支援サイトをもっており、公開しているところもいくつもあります。ここでは、その中から、いくつか紹介します。
以下のどれでも、
R
の基本を学ぶことができます。他にもたくさんありますが、一部のみ紹介します。自分の気に入ったものを見つけてください。学習のリソースについては、Resources を参照してください。
Youtube には、Data Science に関しても、膨大な Video が公開されており、MOOCs などのコースの Video で公開されているものもあります。ここでは、少しだけ紹介します。[ ] の中は長さです。
R
についての短い紹介です。英語ですが、字幕を表示させることができます。ただし、機械的に認識して表示しているので、R
は our
となっています。R
によるデータ分析について説明しています。豊富な内容が、順序立てて説明され、基本がカバーされていて、よくまとまっています。最初から、すべてを理解することは難しいと思いますが、Video の下に、項目ごとに、何分頃に何が説明されているかも書かれており、途中から見ることができるようになっています。実際に Data Science をはじめると、最初に苦労するのが、グラフについてではないかと思います。しかし、ここに、ちょっと微妙な問題があります。以下、Graphics(グラフ)について、特に、Base
R
Graphics とggplot2
について書き、Get Started の結びとします。
ggplot2
これから、R
について学んでいくにあたって、ひとつだけ書いておくべきことがあります。それは、特に、グラフに関して生じる、Base Graphics と、tidyverse
などの「現代的 (Modern)」な Package 群に支えられた、ggplot2
を使った Graphics の違いについてです。
Interactive Learning Tool の項で、swirl と、RStudio Premier を紹介しましたが、swirl の R Programming は、Base Graphics と呼ばれる、R
に最初から Install されているものだけを使っており、最後の、15. Base Graphics も、そのタイトルの通り、Base の グラフ環境だけを使っています。一方、R Studio Premier では、ggplot2
など、一群の tidyverse
Package を使っています。
R
は、Free Open Source であり、多くの人たちによって、機能が付け加えられ、それが、維持・管理されています。しかし、そのことは、それぞれのユーザーの必要に応える形で開発されていくために、名称も含め、システム全体としての、統一性に欠けていたり、全体が論理的構成になっていないなどの問題が生じます。これまでも、規格を定めるなどして整合性は維持されてきましたし、Package を登録するときの規定も明確に定められて来ています。しかし、一番、問題を生じたのが、グラフの部分です。R
は、様々な分野で利用されていますが、ユーザーが、それぞれの分野として頻繁に使う形式の出力を簡単にするために、Package を追加していったことが背景にあると思います。
Leland Wilkinson によって提唱された、Grammar of Graphics をベースに、Hadley Wickham 等によって、論理的な構成が形となり生まれた、ggplot2
に、さらに、高速化を含む、Data を扱う一群の、Package が、tidyverse
としてまとめられ、現在は、広く使われており、初心者のうちから、ggplot2
などを使うことが薦められています。個人的には、非常にすぐれていると思います。そこで、常に tidyverse
を使っていますので、上でも、Package の最初に、tidyverse
の Installation からはじめました。
しかし、Data を最初に概観するときには、簡単な命令でもある、Base R Graphics は便利です。個人的には、R
の基本と、Base Graphics の基本を押さえてから、現代的な Graphics をしっかり学んでいくのがよいと思っています。
tidyverse
R packages for data science:ホームページ。関連、Package の簡単な解説と、Hadley Wickham と Garrett Grolemund による本 R for data science (r4ds) など、学習のためのリンク。For comments, please send us an email to: freeopenonlinedatascience4all[at]gmail.com