使用ggsignif为嵌套分面箱线图添加显著性标记的问题求助
使用ggsignif为嵌套分面箱线图添加显著性标记的问题求助
我最近在尝试用ggsignif给分面箱线图的组间比较添加显著性括号,但碰到了一些问题,想请教大家。
我的数据里,Y轴是分类变量,同时数据被分成了G1、G2、G3、G4四个世代。我想要针对每个chr类别,比较不同世代之间的差异。
我知道ggsignif里可以通过comparisons=list(c("chr1", "chr2"))这种方式指定X轴组的比较,但当我把比较换成世代组合,比如list(c("G1", "G2"), c("G1", "G3"), ...)时,却弹出了如下警告:
Warning messages: 1: Computation failed in `stat_signif()`. Caused by error in `if (scales$x$map(comp[1]) == data$group[1] | manual) ...`: ! missing value where TRUE/FALSE needed 2: Computation failed in `stat_signif()`. Caused by error in `if (scales$x$map(comp[1]) == data$group[1] | manual) ...`: ! missing value where TRUE/FALSE needed
我对这个包的工作机制不太熟悉,现在有几个疑问和需求:
- 显著性数值是
ggsignif自动计算的,还是需要我自己提前计算好并提供一个数据框? - 我想修改显著性的显示样式:不用默认的标记,只在组间差异显著时显示
*,不显著时显示ns。
以下是我数据的部分dput结果,方便大家复现问题:
tmp <- structure(list( `M-pattern` = c("M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10", "M0", "M1", "M10"), id = c(200080, 200080, 200080, 200081, 200081, 200081, 200084, 200084, 200084, 200085, 200085, 200085, 200086, 200086, 200086, 200080, 200080, 200080, 200081, 200081, 200081, 200084, 200084, 200084, 200085, 200085, 200085, 200086, 200086, 200086, 200080, 200080, 200080, 200081, 200081, 200081, 200084, 200084, 200084, 200085, 200085, 200085, 200086, 200086, 200086, 200080, 200080, 200080, 200081, 200081, 200081, 200084, 200084, 200084, 200085, 200085, 200085, 200086, 200086, 200086), hap = c("hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap1", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2", "hap2"), values = c(100, 20000, 2, 200, 40000, 4, 50, 10000, 1, 500, 15000, 75, 250, 7500, 125, 400, 80000, 8, 800, 160000, 16, 200, 40000, 4, 2000, 60000, 300, 1000, 30000, 500, 14, 200, 2, 20, 283, 3, 10, 141, 1, 32, 173, 12, 22, 122, 16, 28, 400, 4, 40, 566, 6, 20, 283, 3, 63, 346, 24, 45, 245, 32), gen = c("G3", "G3", "G3", "G4", "G4", "G4", "G4", "G4", "G4", "G2", "G2", "G2", "G1", "G1", "G1", "G3", "G3", "G3", "G4", "G4", "G4", "G4", "G4", "G4", "G2", "G2", "G2", "G1", "G1", "G1", "G3", "G3", "G3", "G4", "G4", "G4", "G4", "G4", "G4", "G2", "G2", "G2", "G1", "G1", "G1", "G2", "G2", "G2", "G1", "G1", "G1", "G3", "G3", "G3", "G4", "G4", "G4", "G4", "G4", "G4") ), class = "data.frame", row.names = c(NA, -60L))
内容来源于stack exchange




