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