ハーバード大のWEB講座でRを使ったデータサイエンス入門をやってみる Part.1 Basics


データサイエンスというものが一般的になってきたのですが、普通になってきたからこそノータッチじゃいかんだろと思い立ちましてやってみることにしました。

1.なぜRなのか

ネットの投稿とかを見るとPythonを推している記事のほうをよく見かけました。データサイエンスに限らず、最近のはやりとしてPythonが多いのは承知なのですが、なぜRを選んだか、それはCS50の無料講座でやっていたからです。安直ですが。あと無料公開がもうすぐ終わると出てたので、見れなくなる前にやっておこうかなというケチケチ根性でもあります。無料公開やめる理由が古くなって使えなくなってきたからなのか、金とって受講させた方が確実にもうかりそうと思えたからなのかは気になりますが。
一応R推しの記事を読んでみると、集計結果をアウトプットとして見せる機能ではRの方が充実しているようです。まあ自分もまだ始めたばかりなので、この文章書き終わるころには何かしらいいところとか見つけられる(といいな)と思います。

2.RとRStudioをインストールする

まずはこっちからRをインストールします。デフォルトのままでインストールするように先生は言いましたが32bitはいらないように思えたのでチェックを外しておきます。あと、デスクトップにショートカットも作るようチェックしました。

ビギナーはRスタジオ使った方がいいよ、と先生がおっしゃるので胸を張ってRStudioもインストールします。以下より

むろん無料版を選択します。プロ版は$995...結構高いですね。プロ版使いこなせるようになったらお給金いっぱいもらえそうでワクワクします。とりあえず先生の言うままにすべてデフォルト選択肢で突き進みました。

3.RStudioを動かしてみる。

起動すると以下のような感じです。Rはインストールするときに言語選択できましたがRStudioは多分選択できなかったと思います。画面の区切りはペインというんですね。

じゃあ試しにRスクリプトのペインを使って動かして見ましょう...でもその前に先生から「操作するときはキーボードショートカットフル活用してね!Highly Recommendだぜっ!」と釘を刺されました。学ぶときはできるだけ素直に聞くというポリシーなのでキーボードショートカットの一覧もRStudioのヘルプからダウンロードして頑張ってみます。例えば今回のRスクリプトを新規作成するときは「Ctrl+Shift+N」です。ちなみにダウンロードしたチートシートは以下です。

大杉!

パッケージでtidyverse と dslabsというパッケージをインストールしろと言われたので言う通りコンソールペインに

install.packages("tidyverse")

したのですが、書き込めませんでした的なメッセージが..。どうもRStudioを実行するときに管理者権限で実行する必要があるようです。先生のデモ(MacOS)だと何も言ってないのでWindows限定の話なのかもしれません。気を取り直して次は以下のスクリプトを実行しましょうと来たのでスクリプトペインに打ち込んでみました。

library(tidyverse)
library(dslabs)
data(murders)

murders %>%
  ggplot(aes(population, total, label = abb, color = region))
  geom_label()

打ち込み終わってCtrl+Enterしてみると、あれ?
なんだか絶望的にうまくいってない...。しょっぱなから躓くな~。
ちなみにスクリプトペインに書いたもののうち、一行ずつ実行するのはCtrl+Enter です。Ctrl+Shift+Enterだとスクリプトペインの中身すべてを実行します。で、一番初っ端の行のライブラリの読み込みからうまくいってませんでした。エラーログに書いてあったbroomというパッケージを追加でインストールしたらうまくいきました。あれ、右下のこのペインなんて言うんだろう...?まあいいか。

4.値を代入して計算してみる。

コンソールの簡単な使いかたの説明です。コンソールに以下のように入力してみましょう。(左端の > は行の始まりに勝手に表示されるものです)

> a <- 1
> b <- 1
> c <- -1

これは a,b,c という3つのオブジェクトにそれぞれ 1,1,-1 を割当(assignment)ています。「<-」が矢印を意味してるとのことでした。 割当はa = 1 で記述するのが一般的ですし、そっちでやっても問題なくできるのですが、R言語ではこうしてやるのが一般的なんでしょう。細かいことは気にせずに次に進みます。
代入した値は以下コマンドで確認できます。ワークスペースを見る、という意味らしいです。

> ls()

RStudio使っていればenvironmentペインにも割当した値は表示されてるので初心者のうちにはお世話にならないと思いますが、R単独で使う豪の者になればこっちで確認することになるっぽいです。
値を代入した状態で以下の式を入力しエンターすると答えが出てきます。

> (-b + sqrt(b^2 - 4*a*c))/(2*a)
[1] 0.618034

[1] が何なのかよくわかんないですが、解答の数が複数あることもあるんですかね?
数式はLogとかπとかもともと用意されているものもあるし、割当の中に数式を入れてやる(ネストする)こともできるとのことでした。

solution_1 <-  (-b + sqrt(b^2 - 4*a*c))/(2*a)
solution_2 <-  (-b - sqrt(b^2 - 4*a*c))/(2*a)

クラスが終わると簡単なテストがあるのですが、簡単といいつつけっこう悩んでしまいました。You are on fire! と言われたので一瞬、you are fired?講座クビになった?と思いましたが、気のせいでした。

5.時々動かなくなったとき

一度ハマった経験を共有しておきます。
管理者権限でやってなかったときに起きたような「コネクションを開くことができません」的なメッセージが出ました。どうもOneDriveのフォルダでやっているとそういった挙動になることがあるらしく、ドキュメントからデスクトップにフォルダを移動して事なきを得ました。移動先のデスクトップもOneDrive配下でしたが...。具体的には以下のsetwd()で置き先のフォルダを変更しました。

setwd("配置先ディレクトリ")

(追記)

Logも結構使うようなので実際のテストを

# 16 は2の何乗か?
log2(16)
[1] 4
# ↑の答えをさらに平方根
sqrt(log2(16))
[1] 2
# 100は10の何乗か?→2をさらに平方根する。
sqrt(log10(100))
[1] 1.414214

第二回へ続きます)