2
考虑该初始数据帧(yld_sum):geom_abline多个斜率和截距
coef pred se ci.lb ci.ub cr.lb cr.ub Yld_class
b0 3164.226 114.256 2940.289 3388.164 2142.724 4185.728 1Low
b1 -20.698 3.511 -27.580 -13.816 -50.520 9.124 1Low
b0 3985.287 133.220 3724.180 4246.394 2954.998 5015.576 2Low
b1 -14.371 4.185 -22.573 -6.168 -44.525 15.784 2Low
如何可以简化我的语法来绘制两个估计的回归直线与它们各自的CI,并且获得以下情节?
这是我的冗长的代码:
library(tidyverse)
yld_sum_est <- yld_sum %>% select(Yld_class, coef, pred) %>%
spread(coef, pred)
yld_sum_low <- yld_sum %>% select(Yld_class, coef, ci.lb) %>%
spread(coef, ci.lb)
yld_sum_up <- yld_sum %>% select(Yld_class, coef, ci.ub) %>%
spread(coef, ci.ub)
ggplot() +
geom_abline(data = yld_sum_est, aes(intercept = b0, slope = b1)) +
geom_abline(data = yld_sum_low, aes(intercept = b0, slope = b1), linetype= "dashed") +
geom_abline(data = yld_sum_up, aes(intercept = b0, slope = b1), linetype= "dashed") +
scale_x_continuous(limits=c(0,60), name="x") +
scale_y_continuous(limits=c(1000, 4200), name="y")
你能具体谈谈你的不满?你对数据转换代码不满意吗?绘图代码?一般性和可扩展性? – Gregor
我想用初始表来做那个阴谋......我想避免中间数据帧... – Juanchi
那么,你不能很好地直接从那张表中绘制出来。我建议的简化方法是将你的数据框合并成一个单独的列,表示估计值,ub或lb,然后你可以用'linetype = ifelse(type ==“estimate”)做一个'geom_abline', =互动(类型,Yld_class)'美学。我没有看到你的转换代码如何能够以该表格为开始变得简单,但是从模型开始可能会更容易... – Gregor