问题描述
我正在尝试在给定 ggplot 对象中注释数据点的 y 值,事后。
为了提供可重现的示例,我将使用 mtcars
在 lm()
数据上创建模型,并使用 sjplot::plot_model()
绘图。
library(magrittr)
library(sjplot)
given_p_object <-
mtcars %>%
lm(mpg ~ as.factor(gear),data = .) %>%
sjplot::plot_model(.,type = "pred")
所以我的问题从这里开始:假设我得到了对象 given_p_object
。我执行它并得到情节:
> given_p_object
是否可以在图上标记每个点的 y 值,无需参考原始数据和导致图的过程(从而忽略 mtcars %>% lm() %>% sjplot::plot_model()
) ?换句话说,我如何从当前 given_p_object
中提取执行以下操作所需的信息?
解决方法
这些值可以在:
given_p_object$gear$data$predicted
#[1] 16.1 24.5 21.4
一般的解决方案是:
get_predicted_value <- function(p) p[[1]]$data$predicted
get_predicted_value(given_p_object)
#[1] 16.1 24.5 21.4