本文へスキップ
からだにいいもの

Rのトピックスを中心に『まだ、まだ、知らない、役に立つ情報?』を発信します。

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

データの流れを指標や時間軸で表現するのに便利な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

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

スポンサーリンク
Prices and shipping availability may change. Please refer to the product page at time of purchase.
Content displayed on this site is provided by Amazon and may be updated or removed.
Amazon Associate, karada-good earns income through qualifying sales.