2016-11-14 4 views
1

Die Überprüfung der grundlegenden Beispiele zeigt, dass der Vennerable-Eingang eine Liste von Vektoren here haben muss. So kann ich die folgenden, wo ich dort binäre p-Wert Matrizen nehmen und versuchen, ein Venn-Diagramm auf der Grundlage ihrer gemeinsamen Merkmale zu schaffenWie V Venn-Diagramm von binären Matrizen zu machen?

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") 

Abb. 1 Ausgang falsch

enter image description here

Erwartete Ausgang: Vennerable Venn-Diagramm von drei Kreisen

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
OS: Debian 8,5

+1

Die intersect Blicke mögen es verwendet die WAHR/FALSCH (0/1) als Etiketten, die ich bezweifle, dass das beabsichtigt ist. Versuchen Sie es mit 'which', um Bezeichnungen zu erhalten, zB' which (p.mat [["p"]] user20650

+0

@ user20650 Es scheint richtig zu sein. Ich habe ein Wiki mit einem Hinweis auf dich erstellt. Diese großen 0 Bereiche sind jedoch seltsam. –

+1

Yup sieht nicht ganz richtig aus. Ich habe das nicht installiert, kann also nicht helfen, aber es sieht so aus, als ob die Größe der Kreise auf die Anzahl skaliert wird, aber die Schnittpunkte nicht skaliert werden: Vielleicht gibt es dafür ein Argument? [zweiter Gedanke, in einigen Fällen denke ich, auch die Skalierung dieser würde es v. schwierig (wenn nicht unmöglich machen), die Abschnitte anzuordnen) – user20650

Antwort

1

Antwort des user20650 in Kommentar

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) 
) 

Ausgabe

enter image description here

Ticket: #39 und #40