Как абсолютный новичок в R (нет опыта программирования), у меня есть следующая проблема. Я пытаюсь создать сгруппированный лесной участок отношения шансов (blobbogram). Горизонтальная ось должна содержать ИЛИ. По вертикальной оси переменные. Каждая переменная содержит OR (включая нижний и верхний предел) для группы A и группы B. Таким образом, для каждой переменной, показанной на вертикальной оси, должны быть видны 2 строки. Этот веб-сайт и веб-сайт должны дать вам представление о группировке.
Я нашел довольно хороший формат для лесных участков из Майк Барнкоб , который я пытался приспособить к своим потребностям.
Я копался в стеке потока (например, здесь ). С помощью этого метода мне нужно разделить фрейм данных, я полагаю, что возможны и альтернативные способы.
Ниже приведен код, с некоторым фиктивным фреймом данных только для одной группы.
df <- data.frame(Outcome=c("Outcome A", "Outcome B", "Outcome C", "Outcome D"),
OR=c(1.50, 2.60, 1.70, 1.30),
Lower=c(1.00, 0.98, 0.60, 1.20),
Upper=c(2.00, 3.01, 1.80, 2.20)
)
if (!require('ggplot2')) install.packages('ggplot2'); library('ggplot2')
Outcome_order <- c('Outcome C', 'Outcome A', 'Outcome B', 'Outcome D')
p <- ggplot(df, aes(x=factor (Outcome, level=Outcome_order), y=OR, ymin=Lower, ymax=Upper)) +
geom_linerange(size=5, colour="#a6d8f0") +
geom_hline(aes(x=0, yintercept=1), lty=2) +
geom_point(size=3, shape=21, fill="#008fd5", colour="white", stroke = 0.5) +
scale_x_discrete(name="(Post)operative outcomes") +
scale_y_continuous(name="Odds ratio", limits = c(0.5, 5)) +
coord_flip() +
theme_minimal()
p
p + annotate("text", x=4.1, y=2.25, label="*")
Кто-нибудь знает, как добавить вторую группу для каждой переменной, в идеале с легендой выше или в стороне? Заранее спасибо!