问题描述
这篇文章是这篇文章的延续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. 这给了我一个非常奇怪的表格,如下所示:
问题 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 }}、gt
或 flextable
(更多软件包即将推出)。
这很棒,因为支持的制表包非常强大,并且几乎可以进行无限制的自定义。但当然,缺点是如果你想自定义,你需要了解一些关于这些包的知识。有问题的包是非常好的文档,所以请查看他们的网站:
- https://haozhu233.github.io/kableExtra/
- https://davidgohel.github.io/flextable/index.html
- https://gt.rstudio.com/
- https://hughjonesd.github.io/huxtable/
您的问题似乎是:
- 我无法通过复制粘贴您的代码在新的
huxtable
会话中复制您在我的计算机上粘贴的表格。请更新您的软件包,完全重新启动您的R
会话,然后重试。 (您使用的是哪个版本的R
?) - 您的
R
的宽度太小,因此flextable
会插入换行符。使用flextable
包中的width
命令修复。 - 您正在尝试使用
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