Вы можете рассмотреть мой пакет nVennR
.С вашими данными,
>library(nVennR)
> myV <- plotVenn(list(b = c(50,9,2,1),
+ c = c(50,21,2,3),
+ d = c(50,21,9,2,3,20),
+ a = c(50, 21, 9, 2,1,3,20,35)))
> showSVG(myV, opacity = 0.2, borderWidth = 1)
И результат:
Вы также можете перечислить элементы в каждом регионе:
> listVennRegions(myV)
$`0, 0, 0, 1 (a)`
[1] 35
$`0, 0, 1, 1 (d, a)`
[1] 20
$`0, 1, 1, 1 (c, d, a)`
[1] 21 3
$`1, 0, 0, 1 (b, a)`
[1] 1
$`1, 0, 1, 1 (b, d, a)`
[1] 9
$`1, 1, 1, 1 (b, c, d, a)`
[1] 50 2
Обратите внимание, что я удалил нули в вашем списке.Пакет принимает эти нули как элементы, которых не было в списке a.Если вам интересно, вы можете найти виньетка и веб-интерфейс для алгоритма.