91677
下記のデータフレーム（df）で  
`glm(BP ~ age + sex + BMI, data = df)` を実施しています。  
データフレームをそのままでグループ別（sex）に分析する方法はありますか？

**対象のデータフレーム:**

```

    ID　age　sex　BP　BMI
    1　　43　　0　120　21
    2　　62　　1　130　26
    3　　54　　1　132　23
    4　　55　　0　110　19
    
```
CC BY-SA 4.0
2022-10-19T04:49:42.510
91676
2022-10-20T02:38:51.117
2022-10-20T02:38:51.117
47127
54886
question
r tidyverse rstudio
Rstudioでグループ別のglmを教えてください
dplyr を使う場合。

```

    suppressMessages(library(dplyr))
    
    df <- data.frame(
        ID = 1:4, age = c(43, 62, 54, 55), sex = c(0, 1, 1, 0),
        BP = c(120, 130, 132, 110), BMI = c(21, 26, 23, 19)
    )
    
    result <- df %>% group_by(sex) %>% do(model = glm(BP ~ age + sex + BMI, data = .))
    
    result$sex
    result$model
    
```

> summary()を使用した結果もグループ別に見たい

`purrr` ライブラリの `map` を使う場合。

```

    library(purrr)
    
    result$model %>% map(summary)
    
```

**追記**

> グループ別にモデルに出力は可能ですか

少し趣向が異なるかもしれませんが、`names()` でそれぞれに名前を付けることができます。

```

    names(result$model) = c("men", "women")
    result$model$men
    result$model$women
    
```
CC BY-SA 4.0
2022-10-19T05:13:32.663
91677
2022-10-19T06:29:56.367
2022-10-19T06:29:56.367
47127
47127
91676
answer