【发布时间】:2019-08-10 11:49:41
【问题描述】:
在 R 中运行对数线性 GLM 时,我遇到了 purrr::map 和 broom::tidy 的问题。出于某种原因,模型 p 值在运行多个模型时不会打印,但会打印单个模型。最后,我希望多个模型为每个模型打印 p 值,就像在单个模型案例中一样。提供的示例使用内置的“泰坦尼克号”数据集(请参阅 William King 的 website)。
data(Titanic)
#convert to data frame
T.df <- as.data.frame(Titanic)
head(T.df)
#run glm as loglinear model
model1 <- glm(Freq ~ Sex * Survived, family = poisson, data = T.df)
#print model with tidy--p-values print here
broom::tidy(anova(model1, test = "Chisq"))
#Now run multiple models by class
#Note the models print just fine but without p values
T.df %>%
tidyr::nest(-Class) %>%
dplyr::mutate(
fit = purrr::map(data, ~ anova(glm(Freq ~ Sex * Survived, family = poisson, data = .x)), test="Chisq"),
tidied = purrr::map(fit, broom::tidy)
) %>%
tidyr::unnest(tidied)
当我在考虑它时,如何阻止 broom::tidy 打印有关无法识别的列的警告消息?
提前致谢。
【问题讨论】:
-
你看过broom and dplyr 小插图吗?可能有点过时了,因为他们鼓励远离
do,但应该仍然有效