打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
在R中自定义表格数据—DT包


很多时候,我们需要在分析报告中给出相应的表格数据。如果只是单纯的给出数据对象的话报告不够美观。出于这样的一个考虑,本文给大家简单的介绍下DT包。DT包提供了JavaScript库DataTables的一个R接口,它使得R对象(矩阵或数据框)可以在HTML页面上显示为表格。该包DataTables函数生成的表格提供了数据的筛选,分页,排序及其它功能,目前已发布在CRAN上。包的作者是谢大大。安装方法:

install.packages('DT')

1、用法

该包的一个主要函数是datatable()。这个函数通过创建一个HTML的小控件来显示R数据对象:

datatable(data, options = list(), class = 'display', callback = JS('return table;'),rownames, colnames, container, caption = NULL, filter = c('none', 'bottom','top'), escape = TRUE, style = 'default', width = '100%', fillContainer = getOption('DT.fillContainer',FALSE), autoHideNavigation = getOption('DT.autoHideNavigation', FALSE),selection = c('multiple', 'single', 'none'), extensions = list(), plugins = NULL)

我们以R自带的iris数据集为例:

library(DT)datatable(iris)


2、常用参数

如果你对DataTables熟悉,可以使用options参数来自定义表格,详见这里。下面我们简要介绍其它几个重要的参数。

2.1 表格的CSS类型

class参数用于指定表格的CSS类型,所有可选项可以在这里找到。该参数默认值display可以实现在鼠标悬停处突出对应的行,你也可以选择将CSS的类型结合起来使用。如cell-borderstripe

datatable(head(iris), class='cell-border stripe')


2.2 显示行名

如果数据对象存在行名,默认情况下会显示在表格的第一列。通过设置rownames=FALSE可以取消显示行名。当然,我们也可以通过字符串向量来更改行名。

datatable(head(mtcars))


datatable(head(mtcars), rownames=FALSE) #不显示行名


2.3 自定义列名

默认情况下,datatable()会在表中显示数据的列名。我们也可以自定义列名。

完全替换列名:

datatable(head(iris), colnames = c('Here', 'Are', 'Some', 'New', 'Names'))


对部分列名进行修改:

datatable(head(iris), colnames=c('A Better Name'='Sepal.Width'))


datatable(iris, colnames=c('Another Better Name'=2, 'Yet Another Name'=4))


对于存在行名的数据集,默认情况下它的列名是空的。此时我们可以指定它的列名:

datatable(head(iris), colnames=c('ID'=1)) #第一列列名设置为'ID'


2.4 自定义表格容器

container参数通过指定数据表容器来控制表格单元,默认情况下是列名。下面是一个自定义表格标题的例子:

# 自定义表格容器sketch = htmltools::withTags(table(class = 'display',thead(tr(th(rowspan = 2, 'Species'),th(colspan = 2, 'Sepal'),th(colspan = 2, 'Petal')),tr(lapply(rep(c('Length', 'Width'), 2), th)))))print(sketch)
SpeciesSepalPetal
LengthWidthLengthWidth
# 这里我们设置rownames=FALSE不显示行名,datatable(iris[1:20, c(5, 1:4)], container = sketch, rownames = FALSE)


2.5 添加表格标题

caption参数用于添加表格标题。它可以是一个字符串向量,也可以是一个由htmltools::tags$caption()创建的标签对象。更多详情参考这里

datatable(head(iris),caption = 'Table 1: This is a simple caption for the table.')


# 自定义在底部显示标题datatable(head(iris),caption = htmltools::tags$caption(style = 'caption-side: bottom; text-align: center;','Table 2: ', htmltools::em('This is a simple caption for the table.')))


2.7 对列进行过滤

DataTables默认情况下不能对列进行过滤,不过右上角提供了一个全局过滤。我们在datatable()函数中添加了一个filter参数用于实现列过滤,默认值为filter='none'。我们可以设置filter=top或者filter=bottom在顶部或者底部对列进行过滤。

iris2 = iris[c(1:10, 51:60, 101:110), ]datatable(iris2, filter = 'top', options = list(pageLength = 5, autoWidth = TRUE))


以上只是一些简单的介绍,更详细的自定义方法参考官方文档

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
R中的数据表可视化工具——DT包
DT包-分析报告中展示表格数据
GridControl 史上最全的资料(一)
GridView绑定 动态生成的Datatable 怎么在显示出DataColumn的Caption 100分求思路 顶者有分 必结贴
ggplot可视化表格,来替代Excal吧
【新提醒】科学网
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服