【问题标题】:"Impossible" error message in R for VennDiagramVennDiagram R 中的“不可能”错误消息
【发布时间】:2018-07-09 18:13:19
【问题描述】:

尝试在 R 中使用 VennDiagram 时,我不断收到错误消息。下面是我发布的代码:

draw.quintuple.venn(area1 = 578, area2 = 519, area3 = 212, area4 = 402, area5 = 172, n12 = 366, n15 = 97, n13 =149, n14 = 284, n23 = 103, n24 = 202, n25 = 125, n35 = 31, n34= 12, n45 = 27, n123 = 80, n124 = 161, n125 = 84, n134 = 8, n135 = 25, n145 = 20, n234 = 5, n235 = 24, n245 = 21, n345 = 1, n1234 = 5, n1345 = 21, n1245 = 16, n1235 = 0, n2345 = 0, n12345 = 0, category = c("1", "2", "3", "4", "5"), lty = "blank", fill = c("skyblue", "pink1", "mediumorchid", "yellow", "orange"))

错误:

错误 [2018-07-09 13:37:19] 不可能:a11

我做错了什么?

我仔细检查并确保这些值都是正确的。

【问题讨论】:

    标签: venn-diagram


    【解决方案1】:

    我不认为这个包有很好的文档记录。看源码就知道nxxxxx的意思不是很明显。例如n135 表示“有多少元素属于至少 组 1、3 和 5”。当您要绘制图表时,程序包会计算其中有多少 n135 也属于其他组(即 n1235n1345n12345)并减去它们。 这里似乎发生的是,您将n135 解释为“only 有多少元素属于集合 1、3 和 5”(这也是我的猜测)。如果你想直接使用这些数字,你应该写:

    draw.quintuple.venn(area.vector = c(578, 519, 212, 402, 172, 31, 97, 284, 366, 125, 103, 149, 12, 202, 27, 1, 25, 20, 161, 84, 24, 80, 8, 5, 21, 0, 21, 16, 0, 5, 0), category = c("1", "2", "3", "4", "5"), lty = "blank", fill = c("skyblue", "pink1", "mediumorchid", "yellow", "orange"), direct.area = T)
    

    数字的顺序直接取自源代码,我没有看到它记录在案。让我们调用a135“有多少元素属于集合 2、3 和 5”。考虑到这一点,顺序将是:

    a1, a2, a3, a4, a5, a35, a15, a14, a12, a25, a23, a13, a34, a24, a45, a345, a135, a145, a124, a125, a235, a123, a134, a234, a245, a2345, a1345, a1245, a1235, a1234, a12345
    

    如果您更喜欢使用n135 表示法,则需要转换您的数据,以便n135 = a135 + a1235 + a1345 + a12345 等等。在你的情况下,n135 = 25 + 0 + 21 + 0 = 36

    虽然不是问题的一部分,但您也可以使用我的nVennR 包进行比例表示。数字的顺序记录在帮助和vignette 中,您也可以输入原始集而不是数字:

    library(nVennR)
    myV <- createVennObj(nSets = 5, sNames = c('1', '2', '3', '4', '5'), sSizes = c(0, 172, 402, 27, 212, 31, 12, 1, 519, 125, 202, 21, 103, 24, 5, 0, 578, 97, 284, 20, 149, 25, 8, 21, 366, 84, 161, 16, 80, 0, 5, 0))
    myV <- plotVenn(nVennObj = myV, setColors = c("skyblue", "pink1", "mediumorchid", "yellow", "orange"), borderWidth = 0)
    

    结果:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-07-31
      • 1970-01-01
      • 1970-01-01
      • 2013-10-07
      • 1970-01-01
      • 2014-05-03
      相关资源
      最近更新 更多