как сделать сюжет Венна из нескольких групп - PullRequest
0 голосов
/ 17 мая 2019

У меня есть такие данные

df<- structure(list(X1 = c(37L, 2L, 3L, 4L, 5L, 6L, 7L, 8L, 9L, NA, 
11L, 12L), X2 = c(40L, NA, 35L, 35L, 35L, 34L, 29L, 28L, 28L, 
NA, 25L, 24L), X3 = c(60L, 44L, 49L, 41L, NA, NA, NA, 25L, 26L, 
NA, NA, 22L), T1 = c(19L, 55L, 47L, 46L, 36L, 42L, 25L, NA, 33L, 
42L, 50L, 22L), T2 = c(75L, NA, 32L, 44L, 27L, 31L, 17L, NA, 
18L, 45L, 10L, 11L), T3 = c(5L, 6L, 7L, 8L, 9L, 10L, 11L, NA, 
46L, 36L, 42L, NA), P1 = c(2L, 2L, 3L, 4L, 2L, 6L, 7L, 8L, 9L, 
NA, 1L, 12L), P2 = c(40L, 44L, 4L, 2L, 1L, 1L, 29L, 1L, 1L, 1L, 
5L, 55L), P3 = c(1L, 44L, 49L, 3L, NA, NA, NA, 25L, 26L, NA, 
NA, 66L)), class = "data.frame", row.names = c(NA, -12L))

group1 это X1, X2, X3 group2 это T1, T2, T3 group3 это P1, P2, P3

Я пытаюсь сделатьзаговор Венна, но я не могу понять, как это сделать.Я прочитал несколько вопросов здесь, а также очень хороший учебник здесь

https://rstudio -pubs-static.s3.amazonaws.com / 13301_6641d73cfac741a59c0a851feb99e98b.html

Первая группа имеет три копии, вторая группа имеет 3 копии, а третья группа имеет три копии.

1 Ответ

0 голосов
/ 17 мая 2019

Если вы хотите рассматривать свои реплики как одну группу, вы можете использовать мой пакет nVennR:

library(nVennR)
nonas <- function(x) {unlist(as.list(na.exclude(x)))}
myV2 <- plotVenn(list(X=unique(c(nonas(df$X1), nonas(df$X2), nonas(df$X3))),  P=unique(c(nonas(df$P1), nonas(df$P2), nonas(df$P3))), T=unique(c(nonas(df$T1), nonas(df$T2), nonas(df$T3)))), nCycles = 20)
myV2 <- plotVenn(nVennObj = myV2)

Это даст вам квази-пропорциональную диаграмму Венна:

threeset

Затем вы можете исследовать каждый регион:

>listVennRegions(myV2, na.rm = F)
$`0, 0, 0 ()`
[1] NA

$`0, 0, 1 (T)`
 [1] 19 47 46 36 42 33 50 75 32 27 31 17 18 45 10

$`0, 1, 0 (P)`
[1]  1 66

$`0, 1, 1 (P, T)`
[1] 55

$`1, 0, 0 (X)`
[1] 37 35 34 28 24 60 41

$`1, 0, 1 (X, T)`
[1] 11 22

$`1, 1, 0 (X, P)`
[1]  2  3  4 12 40 29 49 26

$`1, 1, 1 (X, P, T)`
[1]  5  6  7  8  9 25 44

В качестве любопытства, алгоритм nVenn не имеет ограничений для заданных чисел.Вы можете выполнить диаграмму из девяти наборов, но она будет медленной и даст мало информации.Это может выглядеть так:

nonas <- function(x) {unlist(as.list(na.exclude(x)))}
myV <- plotVenn(list(X1=nonas(df$X1), X2=nonas(df$X2), X3=nonas(df$X3), T1=nonas(df$T1), T2=nonas(df$T2), T3=nonas(df$T3), P1=nonas(df$P1), P2=nonas(df$P2), P3=nonas(df$P3)))
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- plotVenn(nVennObj = myV)
myV <- showSVG(myV, opacity = 0.2, borderWidth = 0.5, setColors = c('#ff0044', '#ff4400', '#ff2222', '#44ff00', '#00ff44', '#22ff22', '#4400ff', '#0044ff', '#2222ff'))

Вероятно, не очень полезно.Если вы хотите узнать больше, вы можете прочитать виньетка для пакета.

nineset

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...