Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在FlexR表格中,如何使用autofit对齐合并标题下的列_R_Flextable - Fatal编程技术网

在FlexR表格中,如何使用autofit对齐合并标题下的列

在FlexR表格中,如何使用autofit对齐合并标题下的列,r,flextable,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",

我正试图使用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), "Total"),
  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")
意见%
合并v(part=“header”)%>%
合并(part=“body”)%>%
合并v(part=“body”)%>%
对齐(align=“center”,part=“all”)%%>%
自动拟合(part=“all”)%%>%
设置标题(标题=“表8.1”)

我对flextable软件包不太熟悉。但是当我在合并页眉之前对齐表格时,它对我起了作用。也许这就是诀窍

  
  flextable(`Table 8.1`) %>%
    add_header_row(values = c("Pay Higher Taxes", 
                              "Cut Living Standard", 
                              "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")