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)

例图
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • WKNavigationDelegate webview跳转之前调用,可以根据navigationAction决定...
    北纬3954阅读 4,266评论 0 1
  • 【撑控意识就能主宰人生】 人的 一言 一行 全有意识指引 在聚会时 本来聊“茶” 的事 后来说“咖啡” 上了 上一...
    宁静的夏天陪你看海阅读 596评论 0 0
  • 梁诗睿 很荣幸也很开心能有这次到美国萨克拉门托市交流的机会。在接到李老师电话...
    捷径语文阅读 535评论 0 0
  • 昨天听刘若英的《后来》,说实话不止听过一次,大家对这首歌可能都不陌生。但昨天仔细的品位了一下,感慨万千。 这首歌让...
    梅珍阅读 353评论 0 1