今回はいよいよRを触ります
こんにちは、小幡です。マナミナの企画として統計解析のプログラミング言語「R」を1から教えていただくことになり、その模様を全部で8回に分けてお伝えしています。
初回だった前回は、まずRとは何かという概要を学び、実際にRをインストールしました。そして今回は、Rを使う上で、覚えておきたい基礎知識を勉強します。
※編集部注:初出時、本連載は全7回の予定でしたが、編集の都合上、全8回に変更しました。(2020.8.12追記)
いよいよ実際にRを触ることになりますが、Rに慣れ親しんでいくことができるでしょうか…。少し不安がありますが、なんとか頑張っていきたいと思います!
RStudioの使い方とは
輿石さん:さて、インストールが終わりましたね。これでRが使えるようになりました。今回はRStudioの使い方や、Rを使う上で覚えておきたい事前知識を学んでいきましょう。
株式会社ヴァリューズ ソリューション局 マネジャー
輿石拓真(こしいし・たくま)さん
輿石さん:前回もお伝えしましたが、RはRStudioで動かしていきます。そこでまず、RStudioの使い方から説明していきましょう。
RStudioは、次の4つの画面から構成されています。
輿石さん:RStudioでは、テキストエディタにRのコード(Rへの命令)を記述します。そしてCtrl + Enterを押すと、コードが下のコンソールへ送られ命令が実行される流れとなっています。
小幡:テキストエディタでコードを書いていくんですね!
輿石さん:そうです。テキストエディタが表示されていない人がいるかもしれません。左上のタブから「File」「New File」「R script」をクリックすると、新規テキストを開くことができます。
WindowsPCのショートカット「Ctrl + S」 で保存もできますよ。拡張子は「.R」となりますが中身はテキストファイルです。分析ごとにファイルを作って保存しておくといいと思います。では練習として、テキストエディタに以下のスクリプトを入れ、実行(カーソルを入力した行に合わせてCtrl + Enter)してみましょう。
print("hello world")
「hello world」とコンソールに表示されましたか?
小幡:はい、されました!
輿石さん:いいですね。もしもうまくいかない場合は、大文字と小文字や、全角と半角をまちがえていないかを確認してみてください。
では次は、四則演算をやってみましょう。以下のコードをテキストエディタに張り付けて、一行ずつ実行してみてください。「#」以降はコメントといって、コードの実行に影響を及ぼさない決まりになっています。
4 + 5 # 足し算
10 - 4 # 引き算
2 * 3 # 掛け算
22 / 3 # 割り算
(11 + 3) * 40 / 3 # かっこで計算順変更
正しく結果が表示されましたか? ただし、ここでは結果が表示されただけです。どこかに保存しておけると便利ですよね。次に以下のコードを実行してください。
x <- 3 + 5
y <- 10 - 3
z <- x + y
<-
という矢印で変数に代入して保存します。上のコードは、矢印の右側で四則演算を行い、その結果を変数(例えばx)に代入するという指示です。xには8が、yには7が、その両者を足したzには15が入っているはずですね。
それでは上記のコードを実行してみてください。
小幡:はい、できました! ただ、今回は実行しても下のコンソールにコードだけ表示されて、実行結果は表示されてません。
輿石さん:そうですね。それで正しいです。代入した場合結果は表示されません。では、実行結果である変数の中身を確認する方法を2つ説明しますね。
1つは、RStudio右上の「Environment」というタブで確認する方法です。変数に何かを入れるコードを実行すると、すべてこのタブに表示されます。実際にx、y、zの欄にそれぞれ8、7、15と表示されてますね。
小幡:されてます!
輿石さん:もう一つは、変数名だけを実行する方法です。テキストエディタに「z」と変数名だけを入力して実行してください。
小幡:コンソールに15と表示されました!変数の中身を確認したいときには、変数名だけを実行するとよいんですね。
Rの「関数」と「パッケージ」とは
輿石さん:Rでは『関数』を組み合わせて処理を書いていきます。関数と言うと、高校・大学の数学を思い出して頭が痛くなる人もいると思いますが…。関数というのは「インプットを入れると、決まった処理をして決まったアウトプットを出してくれる」ものです。
例えば数学の「y=2x」という関数であれば、xに2を入れたら「2を2倍にする」という処理をして必ず4を出してくれますが、それと同じです。
小幡:関数…。懐かしい響きです。
輿石さん:例えばRの世界には、sum()
という関数があります。これは次のように使います。
a <- sum(3,5)
a
sumという関数に3と5を入れたら、足し算という決まった処理をして、8を出してくれる。そしてここでは、計算した値を変数「a」に代入するという指示を出しています。このように関数とは、特定の処理をしてくれる「特別な箱」のようなものだと思ってください。
小幡:分かりました。「関数は特別な箱」ですね。
輿石さん:また、関数がどんな処理をするのか、どんなインプットが必要なのかといったことには、それぞれ決まりがあります。例えば足し算をする関数のインプットに"こんにちは"と日本語をいれませんよね? 当たり前ですが、足し算をする関数のインプットには数字が必要なんです。これから様々な関数を使ってプログラムを書くことになりますが、この関数のインプットが何かな?と意識することはとても大事ですよ。
ちなみに、この関数のインプットのことを「引数」と呼んでいます。この言葉はこれから頻繁に使っていくので、覚えておいてくださいね。
小幡:分かりました!
輿石さん:少し発展的な内容になりますが、?関数名
とコードを実行すると、右下に関数の引数や処理内容が詳しく書かれたヘルプページが出てくるので参考にしてください。ただし、残念なことに英語です。。。
小幡:英語ですね・・・。
輿石さん:Descriptionが処理の要約、Argumentsが引数の説明なので大事です。また、最後にExampleというコード例がついているので、それをコピペして実行してみるのも関数の理解に役立つと思いますよ。RはWEB上での日本語の情報も充実しているので、英語がわからなければWEBで検索するのも手だと思います。
?sumを実行した例。RStudioの右下に表示される。
輿石さん:では次に、『パッケージ』について説明します。Rでは、集計や回帰分析、モデル構築などの多様な分析が簡単にできるプログラム(関数)を、世界中の人が作って公開してくれているんです。こうした便利な関数を集めたものをパッケージと呼んでいます。それを使わない手はありません。世の中の偉大な先人が作った便利なパッケージをインストールしましょう。
小幡:なるほど、それは便利ですね! 先人さんたちありがとうございます。
輿石さん:インストールには、install.packages
という関数を使います。
install.packages(" ")
""の中に欲しい関数名を入れると、インターネットを経由して、CRANというパッケージが集まっている場所から自分のPCにプログラムを持ってきてくれます。では、まず「tidyverse」(読み方:タイディバース)というパッケージをインストールしましょう。RStudioで次の指示を入力し、Enterを押してみてください。
install.packages("tidyverse")
小幡:実行できました!コンソールにすごい勢いで文字が流れていっています!
輿石さん:それでOKです!しばらくすると文字の流れも止まりますよ。ただ、インストールだけではパッケージが使えるようにはなりません。パッケージを使いたいと思ったら、Rを立ち上げるたびにlibrary
という関数で呼び出す必要があります。
library(tidyverse)
これを実行すると、小幡さんが今開いているRStudioでtidyverseの関数が使えるようになります。install.packages
は一度実行すればOKですが、library
はRStudioを起動する度に呼び出す必要があります。tidyverseの関数が、前回は使えたのに今回は使えなかったとしたら、library
で呼び出し忘れていないかどうか確認してみてくださいね。
小幡:分かりました!
輿石さん:ちなみに、今回扱うパッケージは次の6つです。このうち1〜4までは、library(tidyverse)
で一気に使えるようになります。5と6は別途libraryで読み込む必要があります。
これらのパッケージを使って、Rを使ったデータの加工が簡単に行えるようにしていきます。これから頑張って使い方を習得していきましょう。
Rの「データフレーム」とは
輿石さん:さて、ここまでRStudioの使い方や関数、パッケージといった概念を学んできました。今日は盛りだくさんですが、最後に「データフレーム」を学びます。これでRの基礎知識は終わりなので、頑張ってくださいね。
小幡:はい、頑張ります…!
輿石さん:いままでデータを扱うときに、Excelを使ったことがあると思います。実際に、Rでの多くのデータ分析もExcelのような二次元の表を使います。そしてRでは、Excelの数表の形を『データフレーム』と呼んでいます。
Excelの数表には、その列がなんのデータなのかを表す『列名』がありますよね。データフレームも同じで、列名を持っています。
また、「ユーザー数」という列があるとすれば、必ず数字が入っていますよね。急に100行目に「あ」とかが入っていたらおかしいです。ひとつの列には必ず同じ性質の値が格納されている、という事実は当たり前かもしれませんが結構大事なので覚えておくといいでしょう。
小幡:なるほど。つまり、Excelの行列を思い浮かべればいいんですね。
輿石さん:そうですね。基本構造は同じです。では例を見てみましょう。Rの中には、いくつかのサンプルデータが読み込まれています。今回はスターウォーズのデータを読み込んでみましょう。テキストエディタに次のコードを入力してみて下さい。
data <- starwars
data
実行すると、次のような画面が表示されると思います。これがスターウォーズのデータフレームです。
輿石さん:表示されましたか?表示されない場合はlibrary(tidyverse)
が実行されていないかもしれません。
小幡:はい、出てきました!
輿石さん:これは映画「スターウォーズ」の登場人物の身長や体重などがまとめられたデータです。では右上の変数一覧(「Environmentタブ」)にある「data」をクリックしてみてください。もう少し見やすい形でデータが表示されると思います。これはExcelの表とあまり変わらないですよね。
小幡:確かにこうすれば、以前からExcelで見ていた形式と一緒ですね。
輿石さん:はい。これで大体のデータフレームのイメージが掴めたかなと思います。売り上げデータやアクセス解析データなどマーケターが扱うほとんどのデータはデータフレームとして扱います。次回以降でこのデータフレームを加工していく方法を学びましょう。
本日はここまでです! いろいろお伝えしましたが、実際にRを触りながら一歩ずつ覚えていってくださいね。
小幡:はい! 今日もありがとうございました。
今日のまとめと感想
今回は、Rを使う上での事前知識を勉強しました。大事なことをおさらいしておきます。
1.Rは関数を使ってプログラムを書く。インプットに対して決まったアウトプットを返す「箱」。インプットは「引数」と呼ばれ、内容や順番が大事。
2.Rには便利な関数が集まったパッケージが存在する。RStudioを起動する度にlibrary()
で呼び出すことを忘れない。
3.Rでデータを扱う形式は「データフレーム」。イメージはExcelの数表とほぼ同じ。
さて次回は、パッケージの関数を使ったデータフレームの変形の仕方を学んでいきます。お楽しみに!
データの形式を整えるところから始めよう。マーケターが1からRを勉強します【第3回】
https://manamina.valuesccg.com/articles/740マーケター1年目の小幡さんがRを学んでいきます。講師は株式会社ヴァリューズのデータアナリスト、輿石さん。第3回はRを使ったデータ集計の方法を習得します。Rでデータを扱えるようになりたいと考えている方、ぜひ小幡さんと一緒に勉強していきましょう。
メールマガジン登録
最新調査やマーケティングに役立つ
トレンド情報をお届けします
大学でマーケティングを勉強しながら、ヴァリューズでインターンとして働いていました。2020年の春からは新卒としてヴァリューズに入社しました。