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