2016-11-14 9 views
1

Проверка основных примеров показывает, что входной вход должен содержать список векторов here. Так я делаю следующее, где я беру там бинарные матрицы р-значение, и попытаться создать диаграмму Венна на основе их общих характеристикКак сделать R Vennerable Venn Diagram из двоичных матриц?

library("Vennerable") 
library('limma') # vennCounts, vennDiagram 
library("psych") 

ids <- seq(1,11) 
M.cor <- cor(mtcars) 
colnames(M.cor) <- ids 
rownames(M.cor) <- ids 

p.mat <- psych::corr.test(M.cor, adjust = "none", ci = F) 

alpha <- 0.000000005 

lista <- list(
    as.vector(p.mat[["p"]] < alpha), 
    as.vector(p.mat[["r"]] < alpha), 
    as.vector(p.mat[["t"]] < alpha) 
) 
# List of 3 vectors  

Vstem <- Venn(lista) 

plot(Vstem, doWeights = TRUE, type = "circles") 

Рис. 1 Выход неверном

enter image description here

Ожидаемое выход: Vennerable диаграмма Венна из трех кругов

Stout

List of 3 
$ : logi [1:121] TRUE TRUE TRUE FALSE FALSE FALSE ... 
$ : logi [1:121] FALSE TRUE TRUE TRUE FALSE TRUE ... 
$ : logi [1:121] FALSE TRUE TRUE TRUE FALSE TRUE ... 
Formal class 'Venn' [package "Vennerable"] with 2 slots 
    [email protected] IndicatorWeight : int [1:8, 1:4] 0 1 0 1 0 1 0 1 0 0 ... 
    .. ..- attr(*, "dimnames")=List of 2 
    .. .. ..$ : chr [1:8] "000" "100" "010" "110" ... 
    .. .. ..$ : chr [1:4] "1" "2" "3" ".Weight" 
    [email protected] IntersectionSets:List of 8 
    .. ..$ 000: NULL 
    .. ..$ 100: NULL 
    .. ..$ 010: NULL 
    .. ..$ 110: NULL 
    .. ..$ 001: NULL 
    .. ..$ 101: NULL 
    .. ..$ 011: NULL 
    .. ..$ 111: logi [1:2] TRUE FALSE 

R: 3.3.1
ОС: Debian 8.5

+1

Интерсекта выглядит как он использует TRUE/FALSE (0/1) в качестве меток, и я сомневаюсь, что это то, что предназначено. Попробуйте использовать 'which' вместо этого, чтобы получить метки, т.е.' which (p.mat [["p"]] user20650

+0

@ user20650 Кажется, это правильно. Я сделал вики об этом со ссылкой на вас. Однако эти большие 0 областей странные. –

+1

yup не выглядит совершенно правильно. У меня нет такой установленной помощи, но похоже, что размер кругов масштабируется до подсчета, но пересечения не масштабируются: возможно, есть аргумент для этого? [во-вторых, подумайте, в некоторых случаях id думаю, что и масштабирование их сделало бы сложным (если не невозможным) упорядочение секций) – user20650

ответ

1

ответ user20650 в комментарии

lista <- list(
    which(p.mat[["p"]] < alpha), #as.vector(p.mat[["p"]] < alpha), 
    which(p.mat[["r"]] < alpha), #as.vector(p.mat[["r"]] < alpha), 
    which(p.mat[["t"]] < alpha) #as.vector(p.mat[["t"]] < alpha) 
) 

Выходные

enter image description here

билетов: #39 и #40

 Смежные вопросы

  • Нет связанных вопросов^_^