7

qplot から 500 個の変数の切片と勾配を抽出しようとしています。私が使用しているコード:

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

添付の図にプロットされているように、各回帰直線 (500 行/変数) の切片と勾配を抽出するのを手伝ってくれませんか。

4

2 に答える 2

5

ggplotはグラフを描画しますが、オブジェクトから係数 (Intercepts と Slopes) を抽出しlm()ます。後者を行う 1 つの方法は、dplyrgroup_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
于 2015-05-11T09:17:30.513 に答える
3

lmList複数のグループにわたる線形回帰を計算するために設計された関数を使用するのはどうですか?

library("nlme")
coef(lmList(nd~gd|ENT , data = test))
于 2015-05-11T11:08:13.790 に答える