知っておいて損はない! R 言語のおすすめパッケージ10選
みなさんは R 言語のパッケージでどのようなものを使用されていますか?
R では CRAN を通して様々なパッケージが公開・提供されています。
今回は R で統計解析をするために便利なおすすめパッケージをご紹介します!
そもそもパッケージとは?
パッケージとは、ユーザが作成した R アプリケーションや関数群、ライブラリなどを指します。
CRAN(Comprehensive R Archive Network) は、 R 本体や各種パッケージをダウンロードすることができるWebサイトで、世界中にミラーサイトが存在しています。
日本にも統計数理研究所ミラーや会津大学ミラーなどのサイトが存在しています。
おすすめパッケージ10選
1. データフレーム操作: dplyr
dplyr はデータフレーム操作に特化した plyr の派生パッケージです。
このパッケージは C++ で作成されているため、 R で同じ処理を行うよりも高速に動作します。
絞り込みや集計、グルーピング、ソートなどデータフレームの操作をする場合にはもってこいのパッケージです。
library(dplyr)
sex <- c("F","F","M","M","M")
age <- c(20, 28, 40, 34, 50)
height <- c(158,162,177,173,166)
weight <- c(51,55,72,57,64)
x <- data.frame(SEX=sex, AGE=age, HEIGHT=height, WEIGHT=weight)
# filter
dplyr::filter(x, (SEX == "F"))
# grouping
dplyr::group_by(x, SEX)
# sort
dplyr::arrange(x, desc(AGE))
2. データの可視化: ggplot2
R にはデフォルトで作図関数である plot が備わっていますが、
ggplot2 ではより便利にきれいなグラフを描画することが出来ます。
デフォルトの plot 関数と ggplot2 関数のグラフを比べてみましょう。
library(ggplot2)
# plot
plot(iris$Sepal.Length, iris$Sepal.Width)
# ggplot2
gp = ggplot(iris, aes(x = Sepal.Length, y = Sepal.Width, colour=Species))
gp = gp + geom_point(size = 3, alpha = 0.7)
print(gp)
ggplot2 関数を使うことで同じデータ描画でも、とても綺麗にグラフを書くことができ、散布図だけでなく折れ線グラフやヒストグラム、ヒートマップや回帰曲線など大体のグラフは作成できます。
3. パイプ処理: magrittr
R でもパイプ処理を用いることで、コードの可読性を高めることが出来ます。
magritter では R でパイプ処理を実現することが出来ます。
このパッケージは dplyr など数多くのパッケージを支えています。
library(magrittr)
x %>% f # f(x)
x %>% f(y) # f(x, y)
x %>% f %>% g %>% h # h(g(f(x)))
x %>% f(y, .) # f(y, x)
x %>% f(y, z = .) # f(y, z = x)
library(dplyr)
iris %>%
dplyr::filter(Species == "setosa")
4. レポーティング: rmarkdown
rmarkdown は、 Markdown形式で作成したレポートに R で作成したデータやグラフを当てはめ込み、 PDF や Wor 、 HTML などのフォーマットへ出力することが出来るパッケージです。
rmarkdown を使用するためには別途 pandoc というツールも必要となります。
サイトにはプラットフォーム別にインストーラが配布されていますのでインストールしましょう。
RStudio を使用してサンプルの HTML レポートを作成してみました。
予めテンプレートを作成しておくことで、週次や月次のレポーティングがとても簡単に作成できますのでぜひご活用下さい。
5. 文字列操作: stringr
stringr は、 R での文字列操作をしやすくなるパッケージです。
正規表現によるパターンマッチや大文字小文字変換なども備えています。
library(stringr)
x <- c("Lorem","ipsum","dolor","sit","amet","consectetur","adipiscing","elit")
# basic
str_length(x) # [1] 5 5 5 3 4 11 10 4
str_c(x, collapse = " ") # [1] "Lorem ipsum dolor sit amet consectetur adipiscing elit"
# pattern match
str_count(x, "o") # [1] 1 0 2 0 0 1 0 0
str_detect(x, "o") # [1] TRUE FALSE TRUE FALSE FALSE TRUE FALSE FALSE
# fotmat
str_to_title(x)
# [1] "Lorem" "Ipsum" "Dolor" "Sit" "Amet"
# [6] "Consectetur" "Adipiscing" "Elit"
6. 日付操作: lubridate
lubridate は、 R での日付操作を便利にするパッケージです。
標準で使用できる as.Date と lubridate を使って比較してみましょう。
library(lubridate)
as.Date("2017-04-01")
as.Date("04-01-2017", format = "%m-%d-%Y")
ymd("2017-04-01")
mdy("04-01-2017")
x <- c(
"second chapter due on 2013, august, 24",
"first chapter submitted on 2013, 08, 18",
"2013 aug 23")
ymd(x, locale = "C", tz = "Asia/Tokyo")
# [1] "2013-08-24 JST" "2013-08-18 JST" "2013-08-23 JST"
ほかにも本日の日付を出す today やうるう年判定の leap_year など便利な関数が揃っています。
7. MySQLからデータ取得: RMySQL
RMySQL は、 R から MySQL に接続するためのドライバパッケージです。
RMySQL を通して、 MySQL に保存されているデータから R でデータ解析を行ったり、解析結果を MySQL に保存する時に使用します。
例えば、 WordPress のデータベースから全ての記事情報を取得し dplyr で公開状態の記事のみにフィルタリングしてみます。
library(DBI)
library(RMySQL)
library(dplyr)
md <- dbDriver("MySQL")
con <- dbConnect(md, dbname = "wordpress", user = "user", password = "pass", host = "localhost")
dbSendQuery("select * from wp_posts") %>%
dbFetch() %>%
dplyr::filter(post_status == "publish")
SQL 文をそのまま実行させるだけなので、 SQL の知識が少し必要となります。
8. WebからJSONデータを取得: jsonlite
jsonlite はWeb上で公開されているJSON APIからデータを取得したい時に使用します。
JSONを取得するとそのままデータフレームに変換してくれます。
library(jsonlite)
library(ggplot2)
plot_data <- fromJSON("http://maps.google.com/maps/api/elevation/json?path=43.0,141.4|26.2,127.7&samples=500&sensor=false")
gp <- ggplot(plot_data$results, aes(x = location$lng, y = elevation))
gp + geom_line()
Google Elevation API を利用して経度と標高を取得し ggplot2 で折れ線グラフ化してみました。
x軸が経度(左が沖縄、右が北海道)、y軸が標高を表しています。
JSON が扱えるだけで R で出来ることがとても広がりますね。
9. Google Analytics からデータを取得: RGA
RGA は、 Google Analytics からデータを取得するためのパッケージです。
色々なパッケージがある中でも、 RGA はとても扱いやすいパッケージとなります。
パッケージのメソッドは Google Analytics API に沿っていますので、APIを使用されたことがある方はすぐに使えるようになるかと思います。
詳しい使い方は別記事の「」で書いておりますので、ぜひご一読下さい!
10. 決定木: rpart
rpart は、 R で決定木を作る時に使用します。
デフォルトで付属しているデータセット iris を使って、菖蒲の分類をしてみました。
可視化には rpart.plot というパッケージを使用しています。
library(rpart)
library(rpart.plot)
library(magrittr)
rpart(Species ~ ., data = iris) %>%
rpart.plot()
rpart と rpart.plot を使うだけでとても簡単に決定木を可視化することができました。
さらに決定木のモデルと predict 関数を使って、簡単にではありますが予測を行うこともできますので、機械学習とまでは行かなくても予測モデルを作成してみたい場合には便利かと思います。
まとめ
今回は R を使う上で便利なパッケージをご紹介しました。
とくにデータ解析を行う上では、 dplyr や ggplot2 は必須となります。
しっかりと使い方を把握してより快適な R 生活を楽しみましょう!
-
お問い合わせ
SiTest の導入検討や
他社ツールとの違い・比較について
弊社のプロフェッショナルが
喜んでサポートいたします。 -
コンサルティング
ヒートマップの活用、ABテストの実施や
フォームの改善でお困りの方は、
弊社のプロフェッショナルが
コンサルティングいたします。
今すぐお気軽にご相談ください。
今すぐお気軽に
ご相談ください。
(平日 10:00~19:00)
今すぐお気軽に
ご相談ください。
0120-315-465
(平日 10:00~19:00)
グラッドキューブは
「ISMS認証」を取得しています。
認証範囲:
インターネットマーケティング支援事業、インターネットASPサービスの提供、コンテンツメディア事業
「ISMS認証」とは、財団法人・日本情報処理開発協会が定めた企業の情報情報セキュリティマネジメントシステムの評価制度です。