使用eulerr

时间:2017-11-02 18:17:17

标签: r list venn-diagram

我试图使用eulerr包来创建维恩图。我有2个列表,我想用它来创建维恩图。列表中的一个是第一个的子集。奇怪的是,eulerr似乎认为列表中存在一个值

b

对于该子集而言是唯一的。我似乎无法弄清楚它认为哪些值是独一无二的。

https://pastebin.com/J7tPcfAt

> length(a)
[1] 3278

> length(b)
[1] 1318

当我检查子集之间的重叠时,我得到了预期的结果:

> length(which(a %in% b))
[1] 1318

> length(which((b %in% a)))
[1] 1318

> length(which(!(b %in% a)))
[1] 0

> length(which(!(a %in% b)))
[1] 1960

但是当我使用eulerr绘制维恩图时,我得到了:

library(eulerr)
fit <- euler(list("A" = a, "B" = b))
plot(fit, counts = TRUE)

enter image description here

值得注意的是,eulerr认为A所独有的值的数量比我使用的值多一个

length(which(!(a %in b)))

非常感谢任何帮助理解这种行为!

1 个答案:

答案 0 :(得分:2)

我发现导致这种行为的是什么,但我无法解释原因。这是因为(hello 0)a都有重复值,而且价值相同。

b

如果我从两个向量中删除此值,它就可以工作。

> a[duplicated(a)]
[1] "Crybg3"
> b[duplicated(b)]
[1] "Crybg3"

enter image description here