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

在R flextable中,如何使用自动调整对齐合并标题下的列

如何解决在R flextable中,如何使用自动调整对齐合并标题下的列

我正在尝试使用R中的flextable包从书中复制表格。我在表格中标有align(align = "center",part = "all")标题下方有两列,如果我使用它们,它们的对齐方式不佳autofit(part = "all")

enter image description here

有没有一种方法可以解决此问题,从而使标题下的列不向右偏移?

这是完整的代码

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")  
    

enter image description here

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