【问题标题】:Turn Binary Representation into Venn Diagram将二进制表示转换为维恩图
【发布时间】:2014-12-28 00:30:19
【问题描述】:

我有一个需要转换为维恩图的数据集。数据如下所示:

con1 con2 con3 con4 counts
0.0 0.0 0.0 0.0 4165
0.0 0.0 0.0 1.0 118107
0.0 0.0 1.0 0.0 428978
0.0 0.0 1.0 1.0 32045
0.0 1.0 0.0 0.0 84489
0.0 1.0 0.0 1.0 2199
0.0 1.0 1.0 0.0 67245
0.0 1.0 1.0 1.0 42977
1.0 0.0 0.0 0.0 780948
1.0 0.0 0.0 1.0 40406
1.0 0.0 1.0 0.0 28988
1.0 0.0 1.0 1.0 3559
1.0 1.0 0.0 0.0 9802772
1.0 1.0 0.0 1.0 8890
1.0 1.0 1.0 0.0 6577
1.0 1.0 1.0 1.0 84120

有没有R包可以把这种格式变成维恩图...

我做了什么:

我查看了 VennDiagram 包,但是如何将其转换为维恩图需要你已经在纸上拥有维恩图,即,你需要手动将每个区域的计数填充到该函数中。

我正在寻找一个函数,它可以将这种二进制表示转换为如上所示的维恩图。

谢谢!

【问题讨论】:

标签: r


【解决方案1】:

使用limma 包中的VennCountsvennDiagram 函数 - 如link 所示

Limma 不是 CRAN 的一部分,你可以输入这两个命令来安装 limma:

source("http://bioconductor.org/biocLite.R")
biocLite("limma")

这是加载数据和绘制维恩图的方法:

library("limma")

names(dat)[5] <- "Counts" 
dat <- as.matrix(dat)

class(dat) <- "VennCounts"
vennDiagram(dat)

数据应该是类 "VennCounts" 的矩阵,名称为 Counts。


数据

dat <- structure(list(
    con1 = c(0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1), 
    con2 = c(0, 0, 0, 0, 1, 1, 1, 1, 0, 0, 0, 0, 1, 1, 1, 1), 
    con3 = c(0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1), 
    con4 = c(0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1), 
    counts = c(4165L, 118107L, 428978L, 32045L, 84489L, 2199L, 67245L, 42977L, 780948L, 40406L, 28988L, 3559L, 9802772L, 8890L, 6577L, 84120L)
    ), 
    .Names = c("con1", "con2", "con3", "con4", "counts"), 
    class = "data.frame", row.names = c(NA, -16L)
)

【讨论】:

    猜你喜欢
    • 2023-03-19
    • 2011-09-15
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    • 2021-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多