Я нахожу некоторый R-код для построения леса с использованием ggplot2, комбинируя рисунок с текстом. Однако, когда я запускаю код, появляется сообщение об ошибке, и текстовый фрейм не появляется, хотя рисунок выглядит хорошо. Я буду очень признателен за любые предложения о том, как исправить код. Спасибо!
library(ggplot2)
library(gridExtra)
dat <- data.frame(group = factor(c("A","B","C","D","E","F","G"),
levels=c("F","E","D","C","B","A","G")),
cen = c(3.1,2.0,1.6,3.2,3.6,7.6,NA),
low = c(2,0.9,0.8,1.5,2,4.2,NA),
high = c(6,4,2,6,5,14.5,NA))
theme_set(theme_bw())
theme_update(
axis.line = element_line(colour = "black"),
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.border = element_blank(),
panel.background = element_blank(),
axis.text.y = element_blank(),
axis.ticks.y = element_blank(),
plot.margin = unit(c(0,0,0,0), "lines")
)
lab <- data.frame(
V0 = factor(c("A","B","C","D","E","F","G","A","B","C","D","E","F","G",
"A","B","C","D","E","F","G","A","B","C","D","E","F","G"),
levels=c("G","F","E","D","C","B","A")),
V05 = rep(c(1,2,3,4),each=7),
V1=c("Occuption","Active","","Inactive","","Inactive","","Recreation",
"Inactive","", "Active","","Inactive","",
"Gender","Men","Women","Men","Women","Men","Women",
"OR",3.1,2.0,1.6,3.2,3.6,7.6))
data_table <- ggplot(lab, aes(x = V05, y = V0,
label = format(V1, nsmall = 1))) +
geom_text(size = 4, hjust=0, vjust=0.5) + theme_bw() +
geom_hline(aes(yintercept=c(6.5,7.5))) +
theme(panel.grid.major = element_blank(),
legend.position = "none",
panel.border = element_blank(),
axis.text.x = element_text(colour="white"),#element_blank(),
axis.text.y = element_blank(),
axis.ticks = element_line(colour="white"),#element_blank(),
plot.margin = unit(c(0,0,0,0), "lines")) +
labs(x="",y="") +
coord_cartesian(xlim=c(1,4.5))
p
data_table
##{r forest_plot_1, fig.width=8, fig.height=4, tidy=F}
grid.arrange(data_table, p, ncol=2)
Здесь что-то не так, как показано ниже:
Предупреждающие сообщения:
1: Удалены 1 строка, содержащая пропущенные значения (geom_point)
2: Удалены 1 строка, содержащая пропущенные значения (geom_errorbarh).
data_table
Ошибка: Эстетика должна иметь длину 1 или совпадать с данными (28): yintercept
{r forest_plot_1, fig.width = 8, fig.height = 4, tidy = F}
grid.arrange (data_table, p, ncol = 2)
Ошибка: Эстетика должна иметь длину 1 или совпадать с данными (28): yintercept