データサイエンス基本編 | R | これだけは入れておきたい!必須パッケージ3選!!

パッケージとは

R・RStudioはインストールした直後の状態で、多くのデータ処理と解析に対応しておりすぐに使うことができます。
一方、Rは拡張性に優れたソフトウェアであり、追加機能を導入することで、より高度なデータ操作や分析が可能になります。
こうした追加機能をRではパッケージと呼ばれており、このパッケージは世界中のあるユーザーによって開発され審査を経て公開されています。

このパッケージはCRAL(コラン)というサイトやbioconductor(バイオコンダクター)というサイトからダウンロードしてインストールすることができます。

それではここで実際にいくつかパッケージをインストールしてみましょう。
これが導入しておきたい必須3選になります。

  1. readxl
  2. dplyr
  3. ggplot2

これらのパッケージはデータ操作を直感的効率的に実行するためのパッケージであり、ハードリー・ウィッカム氏よって開発公開されたものです。

インストールするためにはinstall.packages()関数を使います。
インストールとパッケージ関数の()の中に引用符をつけてreadxlを書いて実行しましょう。

パッケージのインストール
#パッケージのインストール
install.packages("readxl",dep=T)

インストールを実行するのは

Windowsの方はCtrl(コントロール) + Enter(エンター)
Macの方はCommand(コマンド) + Enter(エンター)です。

プロンプト記号(>)が出てきたらインストールの完了です。

同様にインストールパッケージ関数の括弧の中に引用符をつけてdplyr・ggplot2を書いて実行しましょう。

パッケージのインストール
# パッケージのインストール
install.packages("readxl",dep=T)
install.packages("dplyr",dep=T)
install.packages("ggplot2",dep=T)

※dplyrは神パッケージで色々と便利なパッケージをまとめてインストールしてくれるパッケージなのでインストールまでには少し時間がかかります。もし、以下のように聞かれた場合は「y」と入力してEnterキーを実行

後に出てきますが、これらのパッケージを利用したい場合には、library()関数でロードする必要があります。

パッケージのインストールと読み込み

前回のファイルのエクセルフォーマット版を読み込んでみます。
そのためにreadxlパッケージを使います。

今回はtestsという名前をつけましょう。

今回は別の読み方をしましょう。
このRプロジェクトがあるtestsフォルダに
achievement.xlsxを格納してください。

格納したかどうかは「Filesタブ」から確認可能です。

データの読み込み

library()関数でreadxlをロードします。

R | データの読み込み
# データの読み込み
library(readxl)

1.Excelファイルの読み込みができるreadxlパッケージ

「tests」オブジェクトにread_excel()関数で読み込み()括弧内には””(引用符)で挟んでachievement.xlsxのみとしましょう。

R | 読み込んだExcelファイルをtestsオブジェクトに代入
# 読み込んだExcelファイルをtestsオブジェクトに代入

tests <- read_excel("achievement.xlsx")
tests

これはプロジェクトと同じフォルダ内にデータの読み込みを行いたいファイルがあることを前提とした読み込み方法です。

もし、プロジェクトとフォルダが違う場合は、現在のプロジェクトを確認してみてください。

現在のプロジェクトを確認
getwd()

現在のプロジェクトのディレクトリがファイルが存在するフォルダパスと別の場合は、

指定フォルダパスへプロジェクトを変更する必要があるため、下記のように記述ください。

指定フォルダパスへプロジェクトを変更
setwd("/Users/home/Desktop/tests")

データの要約

これまでの記事でデータの要約についてお話ししましたが、実は要約はsummary関数を使っても確認ができます。

データの要約

# データの要約
summary(tests)

※しかし、summary関数では分散・標準偏差は出力されないことに注意してください。

2.Rの操作を画期的に楽にしてくれるdplyrパッケージ

データの読み込みでインストールしたdplyrパッケージについて紹介します。
dplyrはデータを効率的直感的に操作することを可能にする追加機能です。
操作の基本はパイプです。

パイプは水を左から右へと流す際に制御する装置ですがこれと同じイメージです。
左にある水を右に送る。
パイプを通してデータを左から右へと流す際に制御するイメージで、左にあるデータを右に送る。

基本は以下のようになります。
左にあるオブジェクトを%>%(パイプ演算子)をパイプと見立てて、右にある操作関数に送る。

左のデータに右の処理を行うイメージです。
ここで注意すべきはオブジェクトは既に左に記述しているため、右の操作関数には記述不要です。
ちなみに先ほどの要約を%>%(パイプ演算子)で実行する場合はこうなります。

 

dplyr のロード

# dplyr のロード
library(dplyr)
# データの要約
tests %>% summary()

分散・標準偏差を取得していますが、ここでdplyrパッケージを使ったパイプ処理を使っていきましょう。
まず先ほどの説明にもありましたが、library()でdplyrをロードし「tests」オブジェクトから%>%(パイプ演算子)を用いてsummary関数へ流すというイメージで直感的に理解できるでしょう。

dplyrとパイプ処理を使って各科目の分散と標準偏差を求めてみましょう。
ただし、前回説明したようにこのデータの1列目と2列目は名前と性別があり、これら以外の科目列を対象としなければなりません。
前回は1、2列目を添字を使って削除するという方法を紹介しました。
これをdplyrではselectという関数で実現します。

selectは文字通り対象とする列を選択する関数です。
列を選択した結果をここではさらに%>%(パイプ演算子)で別の関数に処理を委ねます。

ここで箱ひげ図を書いてみましょう。
箱ひげ図はboxplot関数を使います。
「tests」オブジェクトから%>%(パイプ演算子)を用いてselectで用いる列を選択します。

dplyr で箱ひげ図
# dplyr で箱ひげ図
tests %>% select(English:Mathematics) %>% boxplot()

英語と数学を選びます。
ここで複数の列名を:(コロン)で挟んで選択できることに注意してください。
そして、%>%(パイプ演算子)で箱ひげ図を作成するboxplot関数へと渡します。

次に分散を求めるためにパイプ処理の一番右にvarを適用します。
ここで、この関数をデータtestsの列ごとに適用するということを表すために、summarise_all()関数を一緒に用います。

testsオブジェクトから%>%(パイプ演算子)を用いてselectで英語と数学列を選択します。
そして、%>%(パイプ演算子)でsummarise_all()関数へと渡します。
括弧()の中にはfuns(var)を入力します。

分散を求める
# 分散を求める
tests %>% select(English:Mathematics) %>% summarise_all(funs(var))

 

 

同じ方法で標準偏差を求めます。

「tests」オブジェクトから%>%(パイプ演算子)を用いてselectで英語と数学列を選択し、
%>%(パイプ演算子)でsummarise_all()関数へと渡します。

その格好()の中にはfuns(sd)を入力します。
この結果から標準偏差が小さいものと大きいものがわかりました。

標準偏差を求める
# 標準偏差を求める
tests %>% select((English:Mathematics)) %>% summarise_all(funs(sd))

ggpotの説明は次の記事にて