43. R 数据可视化(一: 用R制作漂亮的表格)

您所在的位置:网站首页 课程制作表格怎么做图片 43. R 数据可视化(一: 用R制作漂亮的表格)

43. R 数据可视化(一: 用R制作漂亮的表格)

2024-07-02 00:07| 来源: 网络整理| 查看: 265

参考:https://www.twblogs.net/a/5c74cddcbd9eee339917b7b2https://towardsdatascience.com/exploring-the-gt-grammar-of-tables-package-in-r-7fff9d0b40cd

前言

想到表格,是不是就是excel,或者直接用ppt 来肝?

R 天然的就有强大的处理数据生成各种表格的能力,岂不美哉?

今天就来学习一下gt 包:

学习网址:https://gt.rstudio.com/

我的目标是画出:

获取内容

其实也就是标准的数据框格式。

需要注意的是,当导入gt 中绘制表格时,会忽略掉行名与列名。

开始操作0.基本表格

加载相关包。尝试直接用gt 获得最基本的图表:

代码语言:javascript复制library(gt) library(tidyverse) library(glue) gt(gt_data)

image.png

1. 添加行名的标签

也就是:

可以直接在gt 函数中指定rowname_col:ps:其中的行的组别可以用参数groupname_col 特别指定,也可以使用重复的名称,直接给rowname_col 指定多个值。

代码语言:javascript复制gt_tbl % gt(rowname_col = "names", "group_label")

image.png

2. 头部信息

tab_header 可以添加头信息,其中title 与subtitle 分别对应标题和子标题:

代码语言:javascript复制gt_tbl % tab_header( title = md("**Comparison of genomic alterations**"), subtitle = md("between *BRCA1/2* mutation carriers and non-carriers Among different prognostic variables") ) gt_tbl

这里使用md() 可以在文本内容中支持md 语法:

3. 添加分组和行的标签名(stubhead label)

使用tab_spanner 函数添加分组,label 指定分组名,columns指定同一分组的多个列。需要使用vars 选定这些列名:

代码语言:javascript复制gt_tbl % tab_spanner( label = "BRCA1", columns = vars(`carrier(N=17)`, `non-carrier(N=262)`, `P-value-1`) ) %>% tab_spanner( label = "BRCA2", columns = vars(`carrier(N=7)`, `non-carrier(N=272)`, `P-value-2`) ) %>% tab_stubhead(label = md("**Variables**")) gt_tbl

image.png

4. 修改文本字体位置代码语言:javascript复制gt_tbl % tab_style( style = list( cell_text(font = "Oswald", align = "center", weight = "bold") ), locations = list( cells_data(everything()) ) )

使用tab_style 命令调整,其中style 指定文本风格,locations 指定文本设定的位置(标题、数据、信息框等等),比如cells_data 就是指定body cell的:

效果如下:

我们还可以指定某个cell 以突出其中内容:

代码语言:javascript复制## 设置字体 gt_tbl % tab_style( style = list( cell_text( weight = "bold" ), cell_fill(color = "#F9E3D6") ), cells_body( columns = vars(`P-value-1`), rows = `P-value-1` % tab_options( table.background.color = "lightcyan" )

image.png

6. 合并重复数值

在我的图表中,对应的P 值是重复的,不太好看:

这里我直接在edit 中手动将重复的删除(你也可以写代码),就会产生NA 值。

接着使用fmt_missing 函数,便可以实现替换缺失值:

代码语言:javascript复制## 去除NA 值 gt_tbl % fmt_missing( columns = TRUE, missing_text = "" ) gt_tbl

当然我这里是“曲线修改”了,如果可以像excel中直接合并单元格是更好的了。

7. 表格的输出

可以用gtsave 直接保存为多种类型的数据:

html代码语言:javascript复制gt_tbl %>% gtsave("tab_1.html") PNG&PDF代码语言:javascript复制# tab_1 %>% gtsave("tab_1.png", zoom = 2.5, expand = 10) # tab_1 %>% gtsave("tab_1.pdf", path = "~") 更多学习的内容

可以参见gt 包官方提供的r cloud 测试服务:https://rstudio.cloud/project/779965



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3