在 R 里,常见的把 p 值映射为“星号”标记(显著性水平)的规则通常是:
p 值范围 | 标记 |
---|---|
p ≤ 0.0001 | “****” |
0.0001 < p ≤ 0.001 | “***” |
0.001 < p ≤ 0.01 | “**” |
0.01 < p ≤ 0.05 | “*” |
0.05 < p ≤ 0.1 | “.” |
p > 0.1 | “ns” |
– “.” 表示弱显著(p≤0.1),
– “ns” 表示非显著(not significant)。
你可以这样在 R 中做一个简单的函数来给任意 p 值打星号:
get_stars <- function(p) {if (p <= 1e-4) return("****")else if (p <= 1e-3) return("***")else if (p <= 1e-2) return("**")else if (p <= 0.05) return("*")else if (p <= 0.1) return(".")else return("ns")
}# 测试
p_vals <- c(0.00005, 0.0005, 0.005, 0.02, 0.08, 0.2)
stars <- sapply(p_vals, get_stars)
data.frame(p = p_vals, stars = stars)
如果你用的是 ggpubr::stat_compare_means()
或 ggsignif
等包,它们默认也是沿用上面的划分。你也可以通过参数 symnum.args
自定义这些阈值和符号。