维恩图表示4组之间的重复术语数量

时间:2014-04-09 08:52:57

标签: r

这是我的df:

df <- data.frame(Group1=c("a","u","b","v","c","z","e","f","k","m","i"),
                 Group2=c("a","u","b","v","y","d","e","t","l","h","i"),
                 Group3=c("a","u","b","v","c","d","r","f","g","n","o"),
                 Group4=c("a","u","x","w","c","d","s","j","g","h","i"))

我想做一个维恩图表示:

  • 在Group1,Group2,Group3和Group4中重复2个元素。
  • 在Group1,Group2,Group3中重复2个元素。
  • 在Group1,Group3和Group4中重复1个元素。
  • 在Group2,Group3和Group4中重复1个元素。
  • 在Group1,Group2中重复1个元素。
  • 在Group1,Group3中重复1个元素。
  • 在Group3,Group4中重复1个元素。
  • 在Group2,Group4中重复1个元素。
  • 在Group1,Group2和Group4中重复1个元素

我不想包含重复元素的标识,我只想说明它们的数量。

2 个答案:

答案 0 :(得分:1)

您可以查看VennDiagram

library(VennDiagram)
venn.plot <- venn.diagram(x = as.list(df), filename = NULL )
grid.draw(venn.plot)

希望它有所帮助, 亚历

答案 1 :(得分:0)

如果我们重新制作每列,那么它们具有相同的级别:

levs<-unique(unlist(df))
df2 <- lapply(df, factor, levs)

然后我们可以找到每列中每个元素的关联矩阵:

incid <- sapply(df2, table)

这正是vennCounts包中的limma函数所需的格式:

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

我想你可以复制vennCounts函数的定义,以便每次都能保存加载限制