Интересно, есть ли способ автоматически рассчитать mean of one group / mean of another group
и распечатать результат на графике, как на прикрепленном изображении. Я также хочу большее число, чтобы go числитель. (например, 1,82 / 1,4, а не 1,4 / 1,82. Я думаю, для этого потребуется оператор if
).
Я создал код (stat_box_data_1
), который автоматически вычисляет некоторую статистику. Сможет ли он сделать mean of one group / mean of another group
таким же образом?
Кроме того, я хочу вставить Mean
и символ %
со стрелкой, как в прикрепленном. Я смог сделать все это, используя paste("Mean", 1.82/1.4, "%")
. Но проблема в том, что мне приходится делать это вручную, меняя номера всякий раз, когда появляются новые данные.
# summary statistics
stat_box_data_1 <- function(y, upper_limit = max(data$mean)) {
return(
data.frame(
y = .74*upper_limit,
label = paste('count =', length(y), '\n',
' mean =', round(mean(y), 2), '\n',
' median =', round(median(y), 2), '\n',
'min =', round(min(y), 2), '\n',
'max =', round(max(y), 2), '\n'
)
)
)
}
# label
label1 = paste("Mean", 1.82/1.4, "%")
# boxplot
p1 <- ggboxplot(data, x = "group", y = "mean", color = "group") +
stat_summary(fun.data = stat_box_data_1, geom = "text", color = "black", size = 3) +
labs(x = "group", y = "mean", tag = "1") +
annotate("text", x= 2, y = 2.5, label = label1, size = 4, fontface = "bold", color = "red") +
annotate("text", x= 2.2, y = 2.55, label = sprintf('\u2191'), fontface = "bold", color = "red", size = 5)
p1[enter image description here][1]