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

在R flextable中,如何在列标题之间添加分隔符

如何解决在R flextable中,如何在列标题之间添加分隔符

我有一个具有嵌套列标题的列联表,我需要帮助在列标题之间添加空间。有三种组织学,每个组织学分为三个阶段。我想在三个阶段的每个阶段之间休息一下。我走了这么远:

Cancer <- read.table("http://users.stat.ufl.edu/~aa/cat/data/Cancer.dat",header = TRUE,stringsAsFactors = TRUE)
library(dplyr)
library(tidyr)
cancerCountWide <- Cancer %>% 
  select(-risktime) %>% 
  pivot_wider(id = time,names_from = c(histology,stage),values_from=count) %>% 
  mutate(blank = " ") %>%
  mutate(blank2 = " ") %>%
  select(time,blank,`1_1`,`2_1`,`3_1`,blank2,everything())


my_header <- data.frame(
  col_keys = c("time","blank","1_1","2_1","3_1","1_2","2_2","3_2","1_3","2_3","3_3"),line2 = c("Follow-up","Histology",rep("I",3),rep("II",rep("III",3)),line3 = c("Follow-up","disease Stage",c(1,2,rep(c(1,2))
)

library(flextable)
flextable(cancerCountWide) %>% 
  set_header_df(
    mapping = my_header,key = "col_keys"
  ) %>% 
  theme_booktabs() %>% 
  merge_v(part = "header") %>% 
  merge_h(part = "header") %>% 
  align(align = "center",part = "all") %>% 
  autofit() %>% 
  empty_blanks()

哪个让我靠近:

enter image description here

在空白列中添加不是很优雅,并且阶段下方的细线也不是很好。我认为必须有一种更好的方法来做到这一点。...

有人可以建议我如何在舞台组之间添加一些填充吗?我是刚接触flextable的人。因此,对于学习教程的建议也将不胜感激。

解决方法

我会做的:

Cancer <- read.table("http://users.stat.ufl.edu/~aa/cat/data/Cancer.dat",header = TRUE,stringsAsFactors = TRUE)
library(dplyr)
library(tidyr)
library(scales)
library(flextable)

cancerCountWide <- Cancer %>% 
  select(-risktime) %>% 
  pivot_wider(id = time,names_from = c(histology,stage),values_from=count) %>%
  mutate(`histo` = " ") %>% 
  select(time,histo,`1_1`,`2_1`,`3_1`,everything())


my_header <- data.frame(
  col_keys = c("time","histo","blank1","1_1","2_1","3_1","blank2","1_2","2_2","3_2","blank3","1_3","2_3","3_3"),line2 = c("Follow-up","Histology","",rep("I",3),rep("II",rep("III",3)),line3 = c("Follow-up","Disease Stage",rep(c("","1","2","3"),3))
)

flextable(cancerCountWide,col_keys = my_header$col_keys) %>% 
  set_header_df(
    mapping = my_header,key = "col_keys"
  ) %>% 
  theme_booktabs() %>% 
  merge_v(part = "header") %>% 
  merge_h(part = "header") %>% 
  align(align = "center",part = "all") %>% 
  autofit() %>% 
  empty_blanks() %>% 
  fix_border_issues()

enter image description here

确保my_header包含所有col_keys描述,并使用col_keys参数获取空白列(如果原始数据集中不存在col_keys之一) /空白列)。

> my_header
   col_keys     line2         line3
1      time Follow-up     Follow-up
2     histo Histology Disease Stage
3    blank1                        
4       1_1         I             1
5       2_1         I             2
6       3_1         I             3
7    blank2                        
8       1_2        II             1
9       2_2        II             2
10      3_2        II             3
11   blank3                        
12      1_3       III             1
13      2_3       III             2
14      3_3       III             3

您可以在此处找到文档:https://davidgohel.github.io/flextable/

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