Я пытаюсь создать график, который отображает значения для 3 отдельных t-тестов для разных результатов. Я пытаюсь использовать функцию stat_compare_means из ggpubr, но постоянно получаю следующую ошибку: Computation failed in `stat_signif()`: missing value where TRUE/FALSE needed
. Это та же ошибка, что и Добавить значения P для сравнения внутри групповой диаграммы но мой случай гораздо проще. Есть ли способ исправить это?
Пример кода ниже
require(tidyverse)
require(ggplot2)
require(ggpubr)
condition <- c("a", "a", "a", "a", "a", "b", "b", "b", "b", "b")
outcome_1 <- c(5,4,4,3,5,2,3,4,5,3)
outcome_2 <- c(4,3,3,2,5,4,5,3,2,4)
outcome_3 <- c(1,2,3,3,2,4,4,5,1,2)
df <- data.frame(condition, outcome_1, outcome_2, outcome_3)
df_means <- df %>%
select(condition, outcome_1, outcome_2, outcome_3)
gg_means <- melt(df_means, id = "condition")
#dodge <- position_dodge(width = 0.5)
ggplot(gg_means, aes(x = reorder(variable, -value), y = value, fill = factor(condition))) +
stat_summary(fun = mean, geom = "bar", position = position_dodge(width = 0.8), width = 0.75) +
stat_summary(fun.data = mean_cl_boot, geom = "errorbar",
colour="grey70", position=position_dodge(width = 0.8), width =.25) +
stat_compare_means(aes(group=condition),
label = "p.signif",
method="t.test",
comparisons = (list(c("a", "b")))) +
scale_fill_brewer(palette = "Paired") +
scale_y_continuous(breaks = seq(0,5,by = 1), limits = c(0,5), expand = c(0,0))
Ниже приведено изображение вывода:
По сути, я хочу отобразить p-значение t-теста (в идеале это U-критерий Манна-Уитни) для каждого результата между условиями a и b.
comparisons
, где предоставлены a и b, но ваша ось X - этоvariable
, поэтому сравнения, которые он ищет, будут чем-то вроде ваших результатов или индексом (1 , 2 или 3 для исходов 1, 2 и 3). Попробуйте просто удалитьcomparisons...
изstat_compare_means
... и добавитьlabel.y = 4.5
, чтобы ваши результаты были видны. Кажется, это обеспечит подходящую группировку для сравнений... - person Ben   schedule 19.01.2021Computation failed in stat_signif(): missing value where TRUE/FALSE needed
, но он все еще не показывает значения p. - person becbot   schedule 20.01.2021NS
для несущественного значения? - person Ben   schedule 20.01.2021p.format
вместоp.signif
- person Ben   schedule 20.01.2021