vlambda博客
学习文章列表

R语言输格式技巧系列(二),再精细一点,定制包含亚组的表格

本系列第二篇

医学码农推荐搜索
R语言
医学统计
统计分析
三线表

主角还是flextable这个包,还是定制表格,本期在上回的基础上再介绍一些


其他的功能,错过了上期的筒子们请先阅读上期内容,这样会有利于理解。


上期内容链接在此:



正文上菜R语言输格式技巧系列(二),再精细一点,定制包含亚组的表格R语言输格式技巧系列(二),再精细一点,定制包含亚组的表格

输入:

library(readxl)dt <- read_excel('自编的示例数据.xlsx')library(flextable)
# 为了方便展示,对数据随机抽取10行,作为本期所用的数据dt_sampledt_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

输出:

统计结果表格的整理,其实已经到了整个统计分析过程的后半程,对于结 果可以清晰合理的展现,有利于结果的呈现和被阅读。 本系列目前的两篇 内容,均是给出一个制作表格的例子,实际工作中表格的内容其实应该是 统计分析的一些结果,包括统计描述和推断的结果。所以,实际应用的过 程中是还需要变通的。想象力和行动力都很重要。还是那句话,学习的事 情是要靠自己的,以上仅供各位参考,具体需求请具体 分析。 不足的地方 还请包含。感谢。


以上内容仅供学习参考。



期精彩干货文章链接