如何为flextable的行名设置格式?含缩进与斜体需求
在flextable中为行名添加缩进与斜体的最优方案
一、为行名添加缩进
flextable的行名默认作为表格主体的第一列存在,无需新增列,直接通过padding()函数针对该列设置左侧缩进即可,还能实现不同层级的缩进效果:
基础缩进示例
library(flextable) library(dplyr) # 构造带行名列的示例数据 df <- tibble( 肿瘤分级 = c("Ⅰ级", "Ⅱ级", "Ⅲ级"), 病例数 = c(25, 32, 18), 生存率 = c(0.92, 0.78, 0.55) ) %>% rownames_to_column("因子名") # 生成表格并设置行名缩进 ft <- flextable(df) %>% # 为第一列(因子名)设置10pt左侧缩进 padding(j = 1, padding.left = 10, part = "body") %>% # 为肿瘤分级列设置更大缩进,体现层级差异 padding(j = 2, padding.left = 15, part = "body") %>% theme_booktabs() ft
特定行层级缩进示例
如果需要部分行有更深的缩进,通过i参数指定行号即可:
ft <- flextable(df) %>% padding(j = 1, padding.left = 10, part = "body") %>% # 为第2、3行的肿瘤分级列设置更深缩进 padding(i = 2:3, j = 2, padding.left = 20, part = "body") %>% theme_booktabs()
二、为行名应用斜体
和表头设置斜体逻辑一致,直接用italic()函数指定主体部分的行名列即可:
基础斜体示例
ft <- flextable(df) %>% # 为第一列(因子名)设置斜体 italic(j = 1, part = "body") %>% # 同时搭配缩进设置 padding(j = 1, padding.left = 10, part = "body") %>% theme_booktabs() ft
直接生成带行名的表格处理
如果是用flextable(df, rownames = TRUE)直接生成带行名的表格,行名列默认名称为rowname,直接指定该列即可:
df <- tibble( 肿瘤分级 = c("Ⅰ级", "Ⅱ级", "Ⅲ级"), 病例数 = c(25, 32, 18), 生存率 = c(0.92, 0.78, 0.55) ) ft <- flextable(df, rownames = TRUE) %>% italic(j = "rowname", part = "body") %>% padding(j = "rowname", padding.left = 10, part = "body") %>% theme_booktabs()
内容的提问来源于stack exchange,提问作者JED HK
相关产品推荐
相关产品推荐

