R语言输格式技巧系列(二),再精细一点,定制包含亚组的表格
本系列第二篇
R语言
医学统计
统计分析
三线表
主角还是flextable这个包,还是定制表格,本期在上回的基础上再介绍一些
其他的功能,错过了上期的筒子们请先阅读上期内容,这样会有利于理解。
上期内容链接在此:
正文上菜!
输入:
library(readxl)
dt <- read_excel('自编的示例数据.xlsx')
library(flextable)
# 为了方便展示,对数据随机抽取10行,作为本期所用的数据dt_sample
dt_g <- as_grouped_data(x = dt_sample, groups = c("Group")) # 数据分组
myft <- as_flextable(dt_g) # 转为flextable格式
myft <- add_footer_lines(myft,
values = c("a:是非成败转头空",
"b:惯看秋月春风")) # 加注释
myft <- add_header_lines(myft,
values = c("包含group的表格")) # 加注释
myft <- compose(myft,j = 2,
part = "header",
value = as_paragraph(
"年龄",as_sup("a"))) # 加上标
myft <- compose(myft,i = 3,j = 3,
part = "body",
value = as_paragraph(
"是",as_sub("b"))) # 加下标
myft <- color(myft,
j = 3,
color = "red",
part = "header") # 指定列变色
myft <- bold(myft,
i = c(1,6),
bold = TRUE,
part = "body")
myft <- set_formatter(x = myft,
ALT = function(x) sprintf("%.02f", x),
检测 = function(x) sprintf("%.01f", x)
) # 修改指定数值列的小数点位数
myft <- align(myft,i = c(2:5,7:12),
align = "center",
part = "body") # 居中对齐
myft <- hline(myft,i = 5,part = 'body',
border = fp_border(color="gray")) # 组间加条线
myft <- bg(myft,
bg = "orange", part = "header") # 设置header背景色
myft <- bg(myft,
bg = "skyblue", part = "body") # 设置body背景色
myft <- bg(myft,
bg = "lightgreen", part = "footer") # 设置footer背景色
myft <- width(myft,j = 3:5,width = 1) # 指定某些列的宽度
myft
输出:
以上内容仅供学习参考。
往期精彩干货文章链接