微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用modelsummary创建回归输出表

如何解决使用modelsummary创建回归输出表

这篇文章是这篇文章的延续here。我尝试按照建议使用 model summary 创建回归输出表。但是我遇到了一些麻烦。

# Code from the original question
library(mfx)
library(dplyr)

year <- rep(2014:2015,length.out = 10000)
group <- sample(c(0,1,2,3,4,5,6),replace=TRUE,size=10000)
value <- sample(10000,replace = T)
female <- sample(c(0,1),size=10000)
smoker <- sample(c(0,size=10000)
dta <- data.frame(year = year,group = group,value = value,female=female,smoker = smoker)
table_list <- dta %>%
  group_by(year,group) %>%
  group_split()

model_list <- lapply(table_list,function(x) probitmfx(smoker ~ female,data = x))

# New code
library(modelsummary)
tab <- modelsummary(model_list,output = 'flextable',stars = TRUE,title = "Table x.",gof_omit = 'IC|Log|Adj')
tab

问题 1. 这给了我一个非常奇怪的表格,如下所示:

enter image description here

问题 2. 另外,我想使用 add_header 添加标题,就像使用 kable 一样。我将如何在模型摘要中做到这一点?

tab %>% 
  add_header(c(" " = 2,"Donations" = 4,"Crimes (person)" = 4,"Crimes (property)" = 4))%>%
  autofit()

编辑:R 版

This is the version platform   
x86_64-w64-mingw32          
arch           x86_64                      
os             mingw32                     
system         x86_64,mingw32             
status                                     
major          3                           
minor          6.1                         
year           2019                        
month          07                          
day            05                          
svn rev        76782                       
language       R                           
version.string R version 3.6.1 (2019-07-05)
nickname       Action of the Toes 

编辑 1:

无论我设置 kable 还是 flextable,我都会得到相同的结果。我已经更新了软件包并重新启动了计算机。

解决方法

了解 modelsummary 的重要一点是它只准备回归表“结构”,并将表的“绘制”委托给外部包:kableExtra、{{1 }}、gtflextable(更多软件包即将推出)。

这很棒,因为支持的制表包非常强大,并且几乎可以进行无限制的自定义。但当然,缺点是如果你想自定义,你需要了解一些关于这些包的知识。有问题的包是非常好的文档,所以请查看他们的网站:

您的问题似乎是:

  1. 我无法通过复制粘贴您的代码在新的 huxtable 会话中复制您在我的计算机上粘贴的表格。请更新您的软件包,完全重新启动您的 R 会话,然后重试。 (您使用的是哪个版本的 R?)
  2. 您的 R 的宽度太小,因此 flextable 会插入换行符。使用 flextable 包中的 width 命令修复。
  3. 您正在尝试使用 flextable 语法(这是 kableExtra 的默认输出格式)添加一行标签,但您手动决定创建一个 modelsummary 输出。 flextable 包中的 add_header_row 提供了类似的功能。

我将使用 flextable 管道来提高可读性:

magrittr

library(magrittr) 解决方案(kableExtra 中的默认值):

modelsummary

library(kableExtra) modelsummary(model_list) %>% add_header_above(c(" " = 1,"first" = 4,"second" = 10)) 解决方案(您首选的输出格式):

flextable

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。