こんにちは!このサイトではプログラミング未経験者だけど、エクセルを使って仕事や情報管理をされている方向けに、R言語プログラミングを使った作業長効率化方法を解説しています!
サイト開設のきっかけでも書きましたが、副業でクラウドソーシング依頼をされている方々が自力でプログラミングを活用できるような情報提供ができれば嬉しいです!
プログラミングと聞くと「難しくて自分には無理だ?」と思われる方も多いかもしれません。
しかし安心してください!Rでの解析は誰でも・今すぐに・簡単に始めることができます!この記事では、事前準備不要、Rでエクセルデータを解析する方法を解説したいと思います!
この記事の目的は、Rを使ったデータ分析がいかに簡単であるかを知ってもらうことです。
そのため、細かい説明は大部分省略しています。このサイトでは各所の詳細な説明記事を今後アップしていきますので、詳しく勉強したい方は他の記事をご覧ください。
今回のざっくりとした流れは以下のような感じです。
今回の例では以下のエクセルデータから棒グラフや折れ線グラフなどを作成してみようと思います!
まずはじめに、Rstudio cloudというサイトでアカウントを作成しましょう。Rstudio cloudは、R解析環境のド定番であるRstudioをクラウド上で動かすことのできる、非常に便利なサービスです。
もちろんインストール版もフリーで使用可能ですが、今回はお手軽体験コースとしてクラウド版を使用してみます。
私はGoogleアカウントでサクッと登録しました。手順は以下の画像も参考にしてみてください。
登録が出来たら、早速プロジェクトを作ってみましょう。右上の「New Rstudio Project」から新規プロジェクトを作成します。今回はRstudio Projectを作成します。Jupyter Projectの使い方もいずれ解説する予定です!
少しだけ待つとメイン画面に飛びます。簡単に画面の説明をしておきます。
画面は4分割されていますが、左上がメインの画面になります。メイン画面にRプログラミングの記述をして、その場で様々な操作を実行することができます。
左下はRコンソール、右上は名前空間にあるオブジェクト一覧を表示する画面ですが、実際に動かさないと理解が難しい部分だと思いますし今はスルーしておきます。
右下はファイル操作をする画面です。実際にコードを書く前に右下の画面からエクセルファイルをアップロードするところから始めましょう。
準備編の最後です!
最後にtidyverseという、これからのR解析で一番重要なパッケージをインストールします。Rプログラミングとは即ちtidyverseを活用することであり、このパッケージを使えるようになることが当面の目標となります。
今後tidyverseや、関連するパッケージ荷関する解説記事もどんどん追加していく予定です!
左下のRコンソール画面に以下のコードを打ち、Enterキーで実行します。
install.packages("tidyverse")
「DONE {tidyverse}」が表示されれば完了です!
ではファイルをアップロードしてみましょう。ここでファイルシステムに関して詳しい説明をすると混乱してしまいそうなので、ファイル操作について簡単に説明しておきます!
Rstudio Cloudは海外のどこかにあるサーバーで動いており、私たちはリモートでそのサーバーを操作していることになります。このサーバーはLinuxというOSで動いています。そのためWindowsユーザーからみると、ファイル操作の勝手が違います。
とは言え、Rstudio上で操作する場合はマウスポチポチで出来ますので、そんなに難しくはありません。徐々に慣れていきましょう。
さておき、早速ファイルをアップロードしたいのですが、その前にフォルダを作って整理整頓しておきましょう。「New Folder」からフォルダを作成します。今回は「初めてのR解析」というフォルダを作成しました。フォルダができたら、ファイルをアップロードしましょう。
今回使うファイルは下図のような仮想の予算消化データです。このファイルは下記リンクからダウンロードできます。
では、データの可視化をしてみましょう。左上のメイン画面に以下のコードをコピー&ペーストしてから、一度保存しましょう。保存先は先ほど作ったフォルダが良いでしょう。
# パッケージの読み込み
library(tidyverse)
library(readxl)
# データの読み込み
sales_data <- read_xlsx("初めてのR解析/Sales.xlsx")
# データの先頭5行表示
head(sales_data)
# グラフ作成
ggplot(sales_data, aes(x = 日付, y = 実績))+
geom_col()
書いたコードを実行するときは緑矢印マークのボタン(Run)です。一つ注意ですが、この時Runボタン(Ctrl+Enterでも同じ)は今選択された行しか実行してくれません。今回はコード全部を一気にランしてしまいたいので、Ctrl+Shift+Enterで一括ランしましょう!すると左下のウインドウにドバーっとコードが流れ、右下にグラフがポンッと出たのではないでしょうか?
Snitch
もしエラーが出た場合はread_xlsx("")で指定したファイルの場所がうまくいっていない可能性があります。そういうときは、""と打った中でTabキーを押すと、ファイルの候補が表示されるはずです。これは自動補完という便利機能ですので覚えておくと良いでしょう。
#から始まる行はコメントアウトといって、実際には実行されない部分を意味します。今回のコードのように、コメントを残すことでコードの意味を理解しやすくするためによく使われます。
今回のような、データの読み込み(あるいは作成)⇒データの可視化による理解の流れはRを使ったデータ分析の基本的な流れになります。Rは直感的にデータの可視化を行うことが出来ますので、可視化してみてからデータの状況を確認してみたりということもしばしば。
では一つ一つ、コードの意味を解説していきます。
まずパッケージを読み込んでいます。tidyverse(タイディーバース)は一つ読み込むだけで沢山の便利機能が使えるようになるパッケージです。
補足をしたいSnitch
tidyはタイディーと読みます。
会社の先輩がtidyverseを「ティディーバース」と読み間違えてて、テディベアみたいでかわいいなと思ったことがあります。
readxl(リードエックスエル、リードエクセル)はエクセルファイルを読み下記するためのパッケージです。他のプログラミング言語と比べて、極めてシンプルにエクセルデータを読み書きすることの出来る、超強力なパッケージです。
library(tidyverse)
library(readxl)
次に、アップロードしたエクセルファイルを読み込みます。
# データの読み込み
sales_data <- read_xlsx("初めてのR解析/SalesData.xlsx")
このコードが実行していることは、“初めてのR解析の下層にあるSalesData.xlsx”というファイルをread(読み込み)して、sales_dataという名前で保存する。という事です。ここで実行したread_xlsx()は関数といい、sales_dataは変数(オブジェクトと呼ぶこともあります)といいます。
変数にいろいろなものを保存しておくことで、後でいつでも呼び出せるようになるのですが、Rプログラミングではこの保存する行為を代入すると言います**。Rでは<-(左括弧と横棒)が代入を表す記号です。**この記号は矢印を模しています。
次に、head()関数を使ってデータの先頭10行を表示しています。これは「きちんとデータが読み込めたか?の確認」を目的に実行しています。
今自分はこういうデータを読み込んで、こういうことをしている。分かってるから確認なんて不要だ!というなら実行は不要ですが、実際には毎度確認してから前に進むことがほとんどです。
head(sales_data)
最後に、データの可視化をしています。ここで使用したのはggplot2という、グラフ作成支援パッケージです。ggplot2は極めて直感的に操作ができ、かつ細部までカスタマイズ可能なツールです。
Rがプログラミングがデータ分析者に人気な理由の一つは、ggplot2という使いやすいツールが存在するためでもあります。
ggplot(sales_data, aes(x = 日付, y = 実績))+
geom_col()
ggplotの詳細は別記事で説明しますが、イメージとしてはキャンバスに絵を描いていくようなイメージです。
最初にやることはggplot()関数を使ってキャンバスを設置することです。この時、x軸には日付、y軸には実績を指定していますが、これは先ほど読み込んだデータの**列名(column names)**です。グラフの設定はここでしてしまいます。
このように作成されたキャンバスに棒グラフを書き足す関数が**geom_col()**です。あくまで一度作成したキャンバスに書き足していくような感じですので、二つの関数は+で繋がれている必要があります。
ggplot関数でグラフのx, y軸設定が済んでいますから、棒グラフを書き足すのは**+geom_col()**だけで完了です。どうでしょう?簡単じゃないですか?
では、他のグラフを書きたい場合はどうすればよいでしょうか?
たとえば、以下はgeom_col()の代わりにgeom_boxplot()を使った例です。geom_col()をgeom_boxplot()に変更しつつ、x軸の設定も「曜日」に変更しました。
boxplotは日本語で箱ひげ図と呼びます。データの見方はまた今度説明しますが、簡単に言うと「データのばらつきも一緒に見せるグラフ」です。下図では、金曜日の実績が100付近でよくまとまっているのに対して、日曜日や木曜日がおおきくばらついていることを示しています。
Boxplotはエクセルでは作成できない、有用なグラフタイプの一つです。これだけのためにRを仕方なく使うという人もいます。
このように、様々な種類のグラフをとりあえず書いてみることで、今まで気づかなかった情報に気づくことが出来ます。ggplot()はこうしたデータ分析のプロセスを簡単に実行できるように設計されているらしいですよ。
最後にもう一例やってみます。
最後の例はエクセルで言うところの散布図です。最後の例ではgeom_point()を使うとともに、色もつけてみました。色分けはaes()の中で、color=の部分に指定すると設定できます。
ここの詳細な指定方法もいずれ説明しますので、今は「ふーん、x軸y軸と同じところで色指定もできるのね」程度の理解で問題ありません。
以上、エクセルデータのR解析。10分速習コースでした!
冒頭で書いたとおり、今回はR解析が簡単にできることをお伝えしたかったので、「ここはどうなっているのだろう?」や「こういうときはどうすればよいのだろう?」という疑問が残るかもしれません。
今後tidyverseや関数、代入などなど、、、今回登場した専門用語の補足だけではなく、各所作のイメージを図解でわかりやすくお伝えしていきたいなーと思っています!もしも解説して欲しいポイントなどありましたら、コメント欄にコメントしていただければと思います!