Я хочу выполнить ANOVA для каждого уровня фактора.Я могу сделать это с dplyr::do
, но хотел бы также с purrr
.Любой намек, пожалуйста.
library(tidyverse)
df1 <- mtcars
df1$cyl <- factor(df1$cyl)
df1$gear <- factor(df1$gear)
fm1 <-
df1 %>%
dplyr::group_by(gear) %>%
dplyr::do(m1 = summary(aov(mpg ~ cyl, data = .)))
fm1$m1
> fm1$m1
[[1]]
Df Sum Sq Mean Sq F value Pr(>F)
cyl 2 69.03 34.52 4.596 0.033 *
Residuals 12 90.11 7.51
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
[[2]]
Df Sum Sq Mean Sq F value Pr(>F)
cyl 1 137.3 137.3 8.123 0.0172 *
Residuals 10 169.0 16.9
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
[[3]]
Df Sum Sq Mean Sq F value Pr(>F)
cyl 2 167.4 83.68 16.74 0.0564 .
Residuals 2 10.0 5.00
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
fm2 <-
df1 %>%
dplyr::group_by(gear) %>%
tidyr::nest() %>%
dplyr::mutate(m2 = purrr::map(.x = data, .f = ~ summary(aov(mpg ~ cyl, data = .)))) %>%
tidyr::unnest()