在 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
自定義這些閾值和符號。