【R言語】doでグループごとに線形回帰
統計検定準1級に無事合格したので、R,pythonの勉強を再開したいと思います。
doでグループごとに線形回帰
もはや、doを使ったやり方は古いですが、念のためメモ
##doの使い方 #各グループから上位2行を取ってくる library(dplyr, warn.conflicts = FALSE) mtcars %>% group_by(cyl) %>% do(head(., 2)) mtcars %>% group_by(cyl) %>% do(lm.res = lm(mpg~.,data=.)) ->lmres #これはだめ mtcars %>% group_by(cyl) %>% do(cor(.$disp,.$wt)) #https://qiita.com/uri/items/27f1497778b4385acb25# # cor()の返り値をdata.frame()で処理する mtcars %>% group_by(cyl) %>% do(cor(.$disp,.$wt) %>% data.frame()) #これはだめ mtcars %>% group_by(cyl) %>% do(wt_max = max(.$wt), drat_max = max(.$drat)) #データフレーム返してもらう mtcars %>% group_by(cyl) %>% do(data.frame( wt_max = max(.$wt), drat_max = max(.$drat))) #決定係数を取り出す lmres %>% summarise(cyl = cyl,r2 = summary(lm.res)$r.squared) #パラメーターを抜き出す lmres %>% do( data.frame(cyl = .$cyl, intercep = coef(.$lm.res)[1], disp_slope = coef(.$lm.res)[3], qsec_slope = coef(.$lm.res)[7], wt_slope = coef(.$lm.res)[6]))
次はpurrrでグループごとの処理を行いたい。