R3. 提取韦恩图(Venn Diagram)中交集或并集的信息

当有多个分类,分类之间有相同又有差异的时候,常用的可视化方法是做韦恩图。有时我们想知道某个交集或其他部分比如独有的信息时,需要提取出来,前提是韦恩图的每个组分是知道的,也就是制作图画的软件能够提供才是可行的。在R中是知道的。
可以根据不同的类别来提取,我喜欢用每部分的个数。个数一般不同,但如果有相同的时候就要手动后期调整。


Example
R中我用包VennDiagram(感谢开发者!)

  1. 安装加载包
## install & require the needed pacakge
# install.packages("VennDiagram")
library(VennDiagram)
  1. 建立工作路径
  2. 读取数据
  3. 使用函数get.venn.partitions能够获得每部分的信息
ldf$Aolig$ID<-as.character(ldf$Aolig$ID)
ldf$Dhapt$ID<-as.character(ldf$Dhapt$ID)
ldf$Dsten$ID<-as.character(ldf$Dsten$ID)
ldf$Everm$ID<-as.character(ldf$Everm$ID)
ldf$Hminn$ID<-as.character(ldf$Hminn$ID)
ev.getven<-get.venn.partitions(x=
                                 list(
                                   "Aolig"=ldf$Aolig$ID,
                                   "Dhapt"=ldf$Dhapt$ID,
                                   "Dsten"=ldf$Dsten$ID,
                                   "Everm"=ldf$Everm$ID,
                                   "Hminn"=ldf$Hminn$ID)
)
  1. 提取
## write a function
## n-a number or numerical vector
dlm.extract.bb <- function(n) {
  for(i in 1:length(n)){
  aim<-ev.getven[ev.getven$..count..==n[i],]
  aim1<-aim$..values.. 
  aim1<-as.data.frame(aim1)
  names(aim1)<-aim$..set..
  filename<-paste0(substr(names(aim1[1]),2,6),".csv")
  write.csv(aim1,filename)
  }
  print("Job done!")
}
## Example
a<-c(208,244,1641,1239,17,2789)
dlm.extract.bb(a)

R3. 提取韦恩图(Venn Diagram)中交集或并集的信息_第1张图片
例图

你可能感兴趣的:(R3. 提取韦恩图(Venn Diagram)中交集或并集的信息)