Rでベン図を描く。
VennDiagramというライブラリが使いやすくて視覚的にもわかりやすかった。
今回6つのデータセットをベン図にplotする必要があったので、6つのベン図ってなんだよと思いつつ、実行してみたら、普通にエラーが出た。VennDiagramの上限は5つまでらしい。
5つをPlotしたのが以下。とても分かりやすい。見やすい。
コードは以下。
library(VennDiagram)
# グループを準備
a <- read.csv('Sample1.csv')
data1 <- as.vector(a$id)
b <- read.csv('Sample2.csv')
data2 <- as.vector(b$id)
c <- read.csv('Sample3.csv')
data3 <- as.vector(c$id)
d <- read.csv('Sample4.csv')
data4 <- as.vector(d$id)
e <- read.csv('Sample5.csv')
data5 <- as.vector(e$id)
# データをリスト型に変換
data <- list("Sample1" = data1, "Sample2" = data2, "Sample3" = data3, "Sample4" = data4, "Sample5" = data5)
# Plot
pdf("Benn.pdf")
venn.diagram(data, filename="Benn.jpg", fill=c(2,3,4,5,6), alpha=0.4, lty=1)
dev.off()
6つ以上plotしたいときは、venn というライブラリを使うとできる。7つまでできる。
引用:r - Nice looking five sets Venn diagrams - Stack Overflow
コードは以下。データの準備は上と同様なので省略する。
library(venn)
data <- list("A" = data1, "B" = data2, "C" = data3, "D" = data4, "E" = data5, "F" = data6, "G" = data7)
pdf("Benn.pdf")
venn(data, ilab=TRUE, zcolor = "style")
dev.off()
重複データの抽出にはintersectを使う。
dup <- intersect(intersect(intersect(intersect(intersect(data1, data2), data3), data4), data5), data6)
出力はpdfにして
レポートに載せるときはスクショ撮ってるんだけど、もっといい方法ないんかな。。
参考 r - Nice looking five sets Venn diagrams - Stack Overflow