我正在尝试从qplot中提取500个变量的截距和斜率。我正在使用的代码:

qplot(gd, nd, data = test, colour = factor(ENT)) +
  geom_smooth(method = "lm", se = FALSE)

有人可以帮助我提取每个回归线(500条线/变量)的截距和斜率,如图所示。

最佳答案

ggplot将绘制图形,但是您从lm()对象中提取系数(截距和斜率)。后者的一种方法是使用dplyr的group_by()do()函数。看见吗

我在这里使用mtcars数据框。

library(ggplot2)
library(dplyr)

ggplot(mtcars, aes(mpg, disp, colour = factor(cyl))) +
   geom_point() +
   geom_smooth(method = "lm", se = FALSE)

mtcars %>%
    group_by(cyl) %>%
    do({
      mod = lm(disp ~ mpg, data = .)
      data.frame(Intercept = coef(mod)[1],
                 Slope = coef(mod)[2])
    })
Source: local data frame [3 x 3]
Groups: cyl

  cyl Intercept      Slope
1   4  233.0674  -4.797961
2   6  125.1225   2.947487
3   8  560.8703 -13.759624

关于r - 如何从图中提取大量变量的截距和斜率,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30144785/

10-10 09:52