如何绘制两个矩阵差的R-Venn图?

如何绘制两个矩阵差的R-Venn图?,r,list,matrix,venn-diagram,R,List,Matrix,Venn Diagram,我想得到两个矩阵p.mat.p和p.mat.t的差异的维恩图,它们在alpha设置时具有相同的维度。 伪码 如果两个矩阵之间匹配,则将项目添加到交点;它可以是假的,也可以是真的;否则,将项目保留在交叉点之外,如维恩图所示 将矩阵单元的ID放在维恩图上 两种方法:带有vennDiagram的矩阵和带有列表的venn。 资料 矩阵编码 输出:121在十字路口如此错误 R:3.3.1 OS:Debian 8.5MATRIX_1==MATRIX_2提供了矩阵之间的差异。 做打印(p.mat.p==p.m

我想得到两个矩阵
p.mat.p
p.mat.t
的差异的维恩图,它们在
alpha
设置时具有相同的维度。 伪码

  • 如果两个矩阵之间匹配,则将项目添加到交点;它可以是假的,也可以是真的;否则,将项目保留在交叉点之外,如维恩图所示
  • 将矩阵单元的ID放在维恩图上
  • 两种方法:带有
    vennDiagram
    的矩阵和带有列表的
    venn
    。 资料

    矩阵编码 输出:121在十字路口如此错误

    R:3.3.1

    OS:Debian 8.5

    MATRIX_1==MATRIX_2提供了矩阵之间的差异。 做
    打印(p.mat.p==p.mat.t)
    你就能得到TRUEs是交叉点和其他项目的位置;但是,对于两个以上的矩阵,这将无法很好地工作

           1     2     3     4     5     6     7     8     9    10    11
    1  FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE
    2   TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
    3   TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
    4  FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE
    5   TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE
    6   TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
    7   TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE
    8   TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE
    9   TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE
    10  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
    11 FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
    

    似乎你不知道如何描述你想要的。矩阵中的分布?并且只显示上面的三角形元素。好的,你怎么能说得更清楚呢???你从哪里进口文尼伯爵和文尼迪亚格拉姆<代码>'>一个vennDiagram(a)错误:找不到函数“vennDiagram”@Masi
    “包'limma'不可用(适用于R版本3.3.2)”
    ,请注意,limma在3.3.2中已经贬值了——不幸的是,无法在这里工作。@hhh确实如此。请严格按照这里的说明操作我更新了你的身体。我认为如果你有两个以上的矩阵,这将不会很好地工作。我也不确定你是否能根据结果创建一个维恩图尝试的第一步是——从矩阵中得到所有为真的点,将它们放到交点;将
    总交点
    放在维恩图的其他两部分上。--我认为R中一定有更直接的东西,可以从列表或矩阵创建venn图。
    library("psych")
    library("gplots")
    library("limma") # http://www.ats.ucla.edu/stat/r/faq/venn.htm       
    
    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 <- .00000005
    
    p.mat.p <- (p.mat[["p"]] < alpha)
    str(p.mat.p)
    print(p.mat.p)
    
    p.mat.t <- (p.mat[["t"]] < alpha)
    str(p.mat.t)
    print(p.mat.t)
    
    # http://www.ats.ucla.edu/stat/r/faq/venn.htm
    c3 <- cbind( c(p.mat.p), c(p.mat.t))
    a <- vennCounts(c3)
    vennDiagram(a)
    
    library("corrplot")
    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 <- .00000005
    
    # http://stackoverflow.com/q/2471188/54964
    p.mat.p <- (p.mat[["p"]] < alpha)
    p.mat.p <- as.list(p.mat.p)
    
    p.mat.t <- (p.mat[["t"]] < alpha)
    p.mat.t <- as.list(p.mat.t)
    
    venn(list(first.vector = p.mat.p, second.vector = p.mat.t))
    
           1     2     3     4     5     6     7     8     9    10    11
    1  FALSE  TRUE  TRUE FALSE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE
    2   TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
    3   TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
    4  FALSE  TRUE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE
    5   TRUE FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE  TRUE FALSE
    6   TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
    7   TRUE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE  TRUE  TRUE FALSE
    8   TRUE FALSE FALSE  TRUE  TRUE FALSE  TRUE FALSE  TRUE  TRUE FALSE
    9   TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE FALSE  TRUE FALSE
    10  TRUE FALSE FALSE FALSE  TRUE FALSE  TRUE  TRUE  TRUE FALSE FALSE
    11 FALSE  TRUE  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE