[R] VennDiagram中的错误:使用十进制数时

时间:2015-05-19 09:22:23

标签: r

  • 我正在使用包draw.quad.venn()的{​​{1}}功能。
  • 我的交叉点中的值显示为十进制数的百分比。
  • 我传递给函数的值被舍入为3位数(例如3.033)。

不幸的是,其中一个十进制数字显示为0.0970000000000 ... 04,其余值只有3位小数(如预期的那样)。

我不知道为什么这个特定值会显示如此多的小数位。

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

csv文件在column1中包含标签(未排序)(A,A_B,A_B_C,...),在column3中包含十进制数字。 这是代码:

library(VennDiagram)

infile = "xxxx.csv"

table <- read.table(file=infile,header=TRUE,sep=";")


C <- table[1,3]
C_D <- table[2,3]
D <- table[3,3]
B <- table[4,3]
B_C <- table[5,3]
B_C_D <- table[6,3]
B_D <-table[7,3]
A <- table[8,3]
A_C <- table[9,3]
A_C_D <- table[10,3]
A_D <- table[11,3]
A_B <- table[12,3]
A_B_C <- table[13,3]
A_B_C_D <- table[14,3]
A_B_D <- table[15,3]

total_A = A+A_C+A_C_D+A_D+A_B+A_B_C+A_B_C_D+A_B_D
total_B = B+B_C+B_C_D+B_D+A_B+A_B_C+A_B_C_D+A_B_D
total_C = C+C_D+B_C+B_C_D+A_C+A_C_D+A_B_C+A_B_C_D
total_D = C_D+D+B_C_D+B_D+A_C_D+A_D+A_B_C_D+A_B_D


draw.quad.venn(area1=total_A,
               area2=total_B,
               area3=total_C,
               area4=total_D,
               n12=A_B+A_B_C+A_B_D+A_B_C_D,
               n13=A_C+A_B_C+A_C_D+A_B_C_D,
               n14=A_D+A_B_D+A_C_D+A_B_C_D,
               n23=B_C+A_B_C+B_C_D+A_B_C_D,
               n24=B_D+A_B_D+B_C_D+A_B_C_D,
               n34=C_D+A_C_D+B_C_D+A_B_C_D,
               n123=A_B_C+A_B_C_D,
               n124=A_B_D+A_B_C_D,
               n134=A_C_D+A_B_C_D,
               n234=B_C_D+A_B_C_D,
               n1234=A_B_C_D,
               category=c("A","B","C","D"),
               fill = c("yellow","blue","red","green"),
               cex=1.5,
               cat.cex=2)