Вывод calculate.overlap не ясен. Есть несколько имен для каждой позиции диаграммы Венна, например: $a1 , $a2 , ... Это становится таким сложным, когда мы рисуем его для пяти списков. Как распознать, какие имена ($a1, $a2,...) связаны с перекрытием каких списков?
library(VennDiagram)
overlap=calculate.overlap(
x=list(
"A"=c("a","b","c"),
"B"=c("a","b","c","d"),
"C"=c("a","c","d")
)
)
и это вывод:
$a5
[1] "a" "c"
$a2
[1] "b"
$a4
character(0)
$a6
[1] "d"
$a1
character(0)
$a3
character(0)
$a7
character(0)
Как заменить эти имена на имена из моего списка?
Мой ожидаемый результат:
$A,B,C
[1] "a" "c"
$A,B
[1] "b"
$A,C
character(0)
$B,C
[1] "d"
$A
character(0)
$B
character(0)
$C
character(0)
Есть ответ здесь. Однако я не претендую на его понимание. Общее правило для упорядочения областей на диаграмме Венна состоит в том, чтобы использовать ее двоичное представление. Мой пакет nVennR
использует это представление и может дать вам быстрый ответ для любого количества наборов:
> library(nVennR)
> myV <- plotVenn(list("A"=c("a","b","c"), "B"=c("a","b","c","d"), "C"=c("a","c","d")), showPlot = F)
> listVennRegions(myV)
$`0, 1, 1 (B, C)`
[1] "d"
$`1, 1, 0 (A, B)`
[1] "b"
$`1, 1, 1 (A, B, C)`
[1] "a" "c"
> listVennRegions(myV, na.rm = F)
$`0, 0, 0 ()`
[1] NA
$`0, 0, 1 (C)`
[1] NA
$`0, 1, 0 (B)`
[1] NA
$`0, 1, 1 (B, C)`
[1] "d"
$`1, 0, 0 (A)`
[1] NA
$`1, 0, 1 (A, C)`
[1] NA
$`1, 1, 0 (A, B)`
[1] "b"
$`1, 1, 1 (A, B, C)`
[1] "a" "c"
Существует виньетка с более подробной информацией об использовании.