gpt4 book ai didi

r - 如何使用 purrr 中的 map 和 dplyr 中的 mutate 来生成 glm 汇总表?

转载 作者:行者123 更新时间:2023-12-01 00:14:45 27 4
gpt4 key购买 nike

我正在使用包 purrr 和 broom 来生成一系列 glm 并构建一个包含模型信息的表格,以便我可以比较它们。

当我从 purrr 调用 map 函数时,代码失败。我认为问题与 mutate 和 map 的组合有关。我想为每个 glm 生成一个行,为 glm 的组件生成一个列。

数据与代码

library(broom)
library(tidyverse)

# Produce a dummy dataset
set.seed(123)
dummy <- tibble(ID = 1:50,
A = sample(x = 1:200, size = 50, replace = T),
B = as.factor(sample(x = c("day", "night"), size = 50, replace = T)),
C = as.factor(sample(x = c("blue", "red", "green"), size = 50, replace = T)))

# Nest the data
nested <- dummy %>% select(-ID) %>% nest()

# Define a function for a generalized linear model with a poisson family
mod_f <- function(x, df = nested) {glm(formula = as.formula(x), family = poisson, data = df)}

# Make a list of formulas as a column in a new dataframe
# A is our response variable that we try to predict using B and C
formulas <- c("A ~ 1", "A ~ B", "A ~ C", "A ~ B + C")
tbl <- tibble(forms = formulas)

# Fit the glm's using each of the formulas from the formulas vector
tbl_2 <- tbl %>% mutate(mods = map(formulas, mod_f))
#gla = mods %>% map(glance),
#tid = mods %>% map(tidy),
#aug = mods %>% map(augment),
#AIC = gla %>% map_dbl("AIC"))

错误

Error in mutate_impl(.data, dots): Evaluation error: object 'A' not found

最佳答案

另一个 Stackoverflow 用户提供的最终答案:

library(broom)
library(tidyverse)

# Produce a dummy dataset
set.seed(123)
dummy <- tibble(ID = 1:50,
A = sample(x = 1:200, size = 50, replace = T),
B = as.factor(sample(x = c("day", "night"), size = 50, replace = T)),
C = as.factor(sample(x = c("blue", "red", "green"), size = 50, replace = T)))

# Define a function for a generalized linear model with a poisson family
mod_f <- function(x) {glm(formula = as.formula(x), family = poisson, data = dummy)}

# Make a list of formulas as a column in a new dataframe
# A is yhe response variable we try to predict using B and C
formulas <- c("A ~ 1", "A ~ B", "A ~ C", "A ~ B + C")
tbl <- tibble(forms = formulas)

# Fit the glm using each of the formulas stored in the formulas vector
tbl_2 <- tbl %>% mutate(all = map(formulas, mod_f),
gla = all %>% map(glance),
tid = all %>% map(tidy),
aug = all %>% map(augment),
AIC = all%>% map_dbl("AIC"))

关于r - 如何使用 purrr 中的 map 和 dplyr 中的 mutate 来生成 glm 汇总表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53968490/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com