Rで解析:データの流れを表現するのに便利!「alluvial」パッケージ

Rの解析に役に立つ記事
スポンサーリンク

データの流れを指標や時間軸で表現するのに便利なAlluvial diagramsです。「ggplot2」パッケージを利用して描写する「ggalluvial」パッケージがありますが、別な方法の一つとして紹介です。

・Rで解析:Alluvial diagramsをプロットしませんか「ggalluvial」パッケージ
 https://www.karada-good.net/analyticsr/r-504/

パッケージバージョンは0.1-1。windows 7およびOS X 10.11.5のR version 3.3.1で確認しています。

スポンサーリンク

パッケージのインストール

下記コマンドを実行してください。

#パッケージのインストール
install.packages("alluvial")

実行コマンドの紹介

詳細はコマンド、パッケージのヘルプを確認してください。

#パッケージの読み込み
library("alluvial")

###データ例の作成#####
n <- 100
TestData <- data.frame("Group" = sample(paste0("Group", 1:3), n, replace = TRUE),
                       "Schar" = sample(letters[1:10], n, replace = TRUE),
                       "Bchar" = sample(LETTERS[1:10], n, replace = TRUE),
                       "Count" = sample(c(0, 1), n, replace = TRUE))
########

#aggregateコマンドでデータを集計
PlotData <- aggregate(formula = Count~Group+Schar+Bchar, data = TestData, FUN = sum)

#alluvialプロットの作成:alluvialコマンド
#ラベルデータの指定:先頭で指定する
#各行の出現数を指定:freqオプション
#各ラインのウェーブ具合:xwオプション;0で直線
#塗の透明度:alphaオプション
#ラベル間の隙間を指定:gap.widthオプション
#色の設定:colオプション
#ライン境界線の色:borderオプション
#ライン描写順を指定:layerオプション
#例ではScharのe以外を先に描写する
alluvial(PlotData[, 1:3], freq = PlotData[, 4], xw = 0.1, alpha = 0.8,
         gap.width = 0.2, col = ifelse(PlotData[, 2] == "e", "#deb7a0", "#4b61ba"),
         border = "gray", layer = PlotData[, 2] != "e" )

出力例

akkuvial

少しでも、あなたの解析が楽になりますように!!

タイトルとURLをコピーしました