如何解决在R flextable中,如何使用自动调整对齐合并标题下的列
我正在尝试使用R中的flextable
包从书中复制表格。我在表格中标有align(align = "center",part = "all")
的标题下方有两列,如果我使用它们,它们的对齐方式不佳autofit(part = "all")
。
这是完整的代码:
Opinions <- read.table("http://users.stat.ufl.edu/~aa/cat/data/Envir_opinions.dat",header = TRUE,stringsAsFactors = TRUE)
# Make contingency table
tab <- as.matrix(addmargins(xtabs(~y1 + y2,data = Opinions)))
library(tidyverse) # for tibble()
# Add label as the first column and variable names
`Table 8.1` <- tibble(`Pay Higher Taxes` = c("Yes","No","Total"),Yes = tab[,1],No = tab[,2],Total = tab[,3])
library(flextable)
my_header <- data.frame(
col_keys = colnames(`Table 8.1`),line1 = c("Pay Higher Taxes",rep("Cut Living Standards",2),line2 = colnames(`Table 8.1`)
)
library(flextable)
flextable(`Table 8.1`,col_keys = my_header$col_keys) %>%
set_header_df(
mapping = my_header,key = "col_keys"
) %>%
theme_booktabs() %>%
merge_h(part = "header") %>%
merge_v(part = "header") %>%
merge_h(part = "body") %>%
merge_v(part = "body") %>%
align(align = "center",part = "all") %>%
autofit(part = "all") %>%
set_caption(caption = "Table 8.1")
解决方法
我对flextable
软件包并不陌生。但是当我在合并标题之前 对齐表时,它对我有用。也许就是诀窍。
flextable(`Table 8.1`) %>%
add_header_row(values = c("Pay Higher Taxes","Cut Living Standard","Total")) %>%
theme_booktabs() %>%
autofit(part = "all") %>%
align(align = "center",part = "all")%>%
merge_h(part = "header") %>%
merge_v(part = "header") %>%
set_caption(caption = "Table 8.1")
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。