Rで解析:9変数までのベン図を作成できます「Vennerable」パッケージ

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

共通数を示すのに便利なベン図があります。多くは2から4変数の共通数を示すために円を用いての表現が多いと思います。紹介パッケージは円だけでなく四角などを用い、最大9変数のベン図が作成できます。

パッケージバージョンは3.1.0.9000。実行コマンドはwindows 11のR version 4.1.2で確認しています。

スポンサーリンク

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

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

#パッケージのインストール
if(!require("devtools", quietly = TRUE)){
  install.packages("devtools");require("devtools")
}
if(!require("BiocManager", quietly = TRUE)){
  install.packages("BiocManager");require("BiocManager")
}
BiocManager::install(c("RBGL","graph"))
devtools::install_github("js229/Vennerable")

実行コマンド

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

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

###データ例の作成#####
TestData <- list(Group1 = sample(paste0("Group", 1:2000), 1300, replace = FALSE),
                 Group2 = sample(paste0("Group", 1:2000), 800, replace = FALSE),
                 Group3 = sample(paste0("Group", 1:600), 400, replace = FALSE),
                 Group4 = sample(paste0("Group", 1:1900), 700, replace = FALSE),
                 Group5 = sample(paste0("Group", 1:600), 100, replace = FALSE),
                 Group6 = sample(paste0("Group", 1:300), 100, replace = FALSE),
                 Group7 = sample(paste0("Group", 1:1500), 100, replace = FALSE),
                 Group8 = sample(paste0("Group", 1:300), 100, replace = FALSE),
                 Group9 = sample(paste0("Group", 1:1500), 100, replace = FALSE))
#######

#ベン図を作成:Vennコマンド
#ラベル名の指定:SetNamesオプション
#変数の数で大きさを指定:Weightオプション;TRUEで自動
DemoPlot <- Venn(SetNames = c("TEST1", "TEST2"),
                 Weight = c('01' = 3, '11' = 10, '10' = 20))
#プロット
plot(DemoPlot)

###プロット体裁の調整#####
#プロットスタイルを指定:typeオプション
#2変数;"circles","squares"
plot(DemoPlot, doWeights = FALSE, type = "circles")
plot(DemoPlot, doWeights = FALSE, type = "squares")

#3変数;"triangles","circles","squares"
plot(Venn(TestData[1:3]), doWeights = FALSE, type = "triangles")
plot(Venn(TestData[1:3]), doWeights = FALSE, type = "circles")
plot(Venn(TestData[1:3]), doWeights = FALSE, type = "squares")

#3変数以上:"squares", "ChowRuskey", "AWFE"
ChoiceType <- c("squares", "ChowRuskey", "AWFE")
#プロット
for(i in seq(length(ChoiceType))){
  
  plot(Venn(TestData[1:(i + 3)]), doWeights = FALSE, type = ChoiceType[i])
  
}
#参考:9変数のプロット:"battle"
plot(Venn(TestData[1:9]), doWeights = FALSE, type = "battle")
########

#0のエリアを表示しない:doEulerオプション
#表示しない:TRUE
DemoPlot0 <- Venn(SetNames = c("TEST1", "TEST2"),
                     Weight = c('01' = 3, '11' = 10, '10' = 0))
#プロット
plot(DemoPlot0, doEuler = TRUE)

出力例

2変数

2circles

・squares

2squares

3変数
・triangles

triangles

・circles

circles

・squares

3squares

3変数以上
・squares

squares

・ChowRuskey

ChowRuskey

・AWFE

AWFE

9変数
・battle

battle

・doEulerオプション

doEuler

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

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