条形图 pvalues 在 R 中的特定条形图上

Barplot pvalues over specific bars in R

我想将 pvalues 放在 barplot 上,但用星号表示它们(* 是 pval = .05 到 .01,** 星号介于 .009 到 .001 之间,*** 小于 .001。 让我们假设我有这个称为分数的随机数据并将它们绘制成条形图并进行比较 100 与 85,88 和 82 的测试。30 和 76 是内部控制(无测试测试)。我提取 pvalues 并存储在由 pval 表示的空向量中。如何转换 pval 数字并放置相应的条形图?我对此不知所措。也许一些循环和文本?我想要控制 100 的东西,85 - 82 应该对它们有 pval,而 30 和 76 对它们没有任何影响。

scores<- c(100, 85, 88, 82, 30, 76);
barplot(scores);
pvalues;
[1] 3.826535e-05 1.038895e-01 4.257805e-05

您可以使用 barplot 的返回值获取柱形的 x 值,然后使用 text 放置星号。

## Sample Data
scores<- c(100, 85, 88, 82, 30, 76)
pvalues <- c(NA, 3.826535e-05, 1.038895e-01, 4.257805e-05, NA, NA)

## Get asterisks
barText <- ifelse(pvalues < 1e-3, "***", ifelse(pvalues < 1e-2, "**", ifelse(pvalues < 5e-2, "*", "")))
barText <- ifelse(is.na(barText), "", barText)

## Make plot
breaks <- barplot(scores)
text(breaks, scores+2, labels=barText)