R 如何从维恩图中获取元素列表

R 如何从维恩图中获取元素列表,r,venn-diagram,R,Venn Diagram,我有一个由3个列表组成的维恩图,我想获得所有不同的子列表,两个列表之间的公共元素,它们之间的树,以及每个列表的唯一元素。有没有办法让这件事尽可能直截了当 AW.DL <- c("a","b","c","d") AW.FL <- c("a","b", "e", "f") AW.UL <- c("a"

我有一个由3个列表组成的维恩图,我想获得所有不同的子列表,两个列表之间的公共元素,它们之间的树,以及每个列表的唯一元素。有没有办法让这件事尽可能直截了当

AW.DL <- c("a","b","c","d")

AW.FL <- c("a","b", "e", "f")

AW.UL <- c("a","c", "e", "g")

venn.diagram(
  x = list(AW.DL, AW.FL, AW.UL),
  category.names = c("AW.DL" , "AW.FL","AW.UL" ),
  filename = '#14_venn_diagramm.png',
  output=TRUE,
  na = "remove"
)

AW.DL我发现包
VennDiagram
有一个函数
calculate.overlap()
,但我无法找到从该函数命名节的方法。但是,如果使用package
gplots
,则函数
venn()
将返回crossions属性

AW.DL <- c("a","b","c","d")

AW.FL <- c("a","b", "e", "f")

AW.UL <- c("a","c", "e", "g")

library(gplots)

lst <- list(AW.DL,AW.FL,AW.UL)

ItemsList <- venn(lst, show.plot = FALSE)

lengths(attributes(ItemsList)$intersections)
要获取元素,只需打印
属性(ItemsList)$crossions

> attributes(ItemsList)$intersections
$A
[1] "d"

$B
[1] "f"

$C
[1] "g"

$`A:B`
[1] "b"

$`A:C`
[1] "c"

$`B:C`
[1] "e"

$`A:B:C`
[1] "a"

函数
venn.diagram()
来自哪个软件包?它来自于软件包venndiagram基本R函数
setdiff()
可以很有帮助并且非常简单。OP没有指定它们需要的输出类型。所以我假设他们只想要维恩图每个部分的元素数量。如果使用给定的列表绘制维恩图,您会发现每个部分正好有一个元素。因此,我觉得这也是我的输出结果。非常感谢您的回答,但我正在寻找子列表中元素的名称。对不起,如果不清楚也许这有帮助@约瑟格拉西亚罗德里格斯
> attributes(ItemsList)$intersections
$A
[1] "d"

$B
[1] "f"

$C
[1] "g"

$`A:B`
[1] "b"

$`A:C`
[1] "c"

$`B:C`
[1] "e"

$`A:B:C`
[1] "a"