Я пытаюсь создать блочную диаграмму, которая показывает только значимые значения p в группах для каждого столбца в блочной диаграмме. Например, здесь он будет сравнивать I1 и SI2 на «удовлетворительно», «хорошо», «очень хорошо» и т. д.
Я попытался использовать следующий код для достижения приведенного выше графика.
library(ggplot2)
library(dplyr)
data("diamonds")
labeldat <- diamonds %>%
group_by(cut, clarity) %>%
dplyr::summarise(labels = paste(n(), n_distinct(color), sep = "\n"))
Comparisons = list(c("I1","SI2"),c("I1","SI1"),c("I1","VS2"),c("I1","VS1"),c("I1","VVS2"),c("I1","VVS1"),c("I1","IF"),
c("SI2","SI1"),c("SI2","VS2"),c("SI2","VS1"),c("SI2","VVS2"),c("SI2","VVS1"),c("SI2","IF"),
c("SI1","VS2"),c("SI1","VS1"),c("SI1","VVS2"),c("SI1","VVS1"),c("SI1","IF"),
c("VS2","VS1"),c("VS2","VVS2"),c("VS2","VVS1"),c("VS2","IF"),
c("VS1","VVS2"),c("VS1","VVS1"),c("VS1","IF"),
c("VVS2","VVS1"),c("VVS2","IF"),
c("VVS1","IF"))
ggplot(diamonds, aes(x=cut, y=price)) +
geom_boxplot(aes(fill=clarity), position = position_dodge2(width=0.75)) +
theme_bw() +
geom_text(data = labeldat, aes(x = cut, y = -250, label = labels), hjust = 0.5, position = position_dodge2(width = .75))+
stat_compare_means(aes(group=clarity), label = "p.signif", method="t.test", comparisons = Comparisons)
К сожалению, использование аргумента сравнения похоже на ошибку вычисления, которую я не могу понять, как решить: Предупреждающее сообщение: Ошибка вычисления в stat_signif()
: отсутствует значение, где требуется ИСТИНА/ЛОЖЬ
Я пытался запустить это без сравнений, но, похоже, это просто дает мне общий балл.