微信 互动表格 工具_使用R:快速进行互动HTML表格

微信 互动表格 工具

具有排序和过滤功能的交互式表格可能是浏览数据的好方法。 当您要共享数据集时,它们也很方便,因此其他人可以进行一些探索。 R包DT(用于数据表 )使创建此类表变得容易。

创建数据表

这是如何做。

[ 在我们的视频教程系列中获得Sharon Machlis的R技巧 | 阅读InfoWorld教程: 学习使用R处理大数据 如何重塑R中的数据 触手可及的R数据操作技巧R的 初学者指南 | 通过InfoWorld大数据报告新闻通讯了解最新的分析和大数据。 ]

首先,我加载了两个软件包:DT和rio,用于导入数据。

library(DT)
library(rio)

接下来,我导入了有关美国五个都会区房价的数据。 该数据基于一个指数,其中每个城市的房屋价格在1995年1月开始于100,然后您可以看到随着时间的变化。 如果您想使用相同的数据来创建名为prices的数据框,请遵循以下代码。

数据包括每两年的一个价格点-1996年第一季度,1998年第一季度,依此类推,直到2018年第一季度。还有最后一列显示从100个起始指数到2018年第一季度的变化。将该列乘以100,将是百分比变化。

为了使它成为交互式HTML表,我将使用DT的datatable()函数。 就像datatable(prices)和voilà!一样简单:一个表应类似于:

用DT包装制成的桌子 Sharon Machlis / IDG

用R DT包创建的表

您可以按任何列进行排序:一键单击按升序排序,第二单击单击按降序排序。 搜索框可让您过滤行。

对于选项datatables

有很多的其他选项datatables

添加过滤器

您可以使用filter参数为每列添加过滤filter (注意:搜索框会在所有列中查找文本)

datatable(prices, filter = 'top')

隐藏行号

如果您不希望显示行号,请使用rownames = FALSE参数:

datatable(prices, filter = 'top', rownames = FALSE)

行号应该消失了。

您也可以摆脱分页菜单,这似乎是个好主意,因为所有行均已显示。 对于此任务,您需要datatableoptions参数,该参数以列表作为其值。 请参阅格式:

datatable(prices, filter = 'top', options = list(paging = FALSE))

如果您运行代码,则分页菜单应消失。

寻找选择

您如何知道可用的选项? 哪些是它们自己的数据表参数,例如filterrownames ,哪些必须在options = list()参数中? 这让我有些困惑-直到我终于崩溃了,并阅读了datatable函数的帮助文件。

应该在帮助文件中列出所有不需要在options = list()内的参数,您可以通过运行?datatable看到该文件。 但是,有关可以放入options列表中的内容的信息,帮助文件会将您发送到其他地方:到datatables JavaScript库的文档中。 这是因为DT是datatables JavaScript库的R包装器。 单击https://datatables.net/reference/option/链接以查看可用选项。

格式化列

格式化列是另一种有用的自定义方式,例如,格式化“更改”列以使其显示为百分比。 DT具有多个列格式函数,包括formatPercentage()formatCurrency() 。 这些是单独的函数,而不是datatable的选项或参数,它们将数据表作为第一个参数。

在以下代码中,我将结果从初始datatable() formatPercentage()formatPercentage()函数中。 然后,我先告诉formatPercentage()要格式化的列的名称,然后告诉我要舍入到小数点后位数的位数。

datatable(prices, filter = 'top', options = list(paging = FALSE)) %>%
formatPercentage('Change', digits = 1)

运行该代码以查看“更改”列显示为百分比。

如果您在RStudio中输入DT::format并暂停,则会看到其他可用的DT格式功能的下拉列表。

另存为HTML表格

您要将此表另存为HTML文件吗? 您可以使用HTML Widgets包。

下面的代码加载htmlwidgets库,将表保存到名为mytable的变量,然后使用saveWidget函数将其保存到名为mytable.htmlHTML文件。

library(htmlwidgets)
mytable <- datatable(prices, filter = 'top', options = list(paging = FALSE)) %>%
formatPercentage('Change', digits = 1)
saveWidget(mytable, "mytable.html")

mytable.html是常规HTML文件,可以在任何浏览器中打开并在Web上使用。

很酷

房价数据框代码

prices <- data.frame(stringsAsFactors=FALSE,
MetroArea = c("Boston", "Detroit", "Phil", "SanFran", "SiValley"),
Q1_1996 = c(106.44, 107.99, 105.25, 100.72, 102.93),
Q1_1998 = c(116.78, 127.83, 107.15, 117.25, 126.01),
Q1_2000 = c(148.58, 150.8, 111.73, 159.11, 170.74),
Q1_2002 = c(189.41, 170.34, 132.86, 195.5, 205.14),
Q1_2004 = c(234.68, 181.89, 164.54, 223.02, 223.33),
Q1_2006 = c(272.14, 186.43, 219.74, 305.88, 311.17),
Q1_2008 = c(253.33, 158.29, 234.13, 291.35, 293.01),
Q1_2010 = c(227.91, 117.45, 219.46, 248.28, 238.12),
Q1_2012 = c(224.55, 111.14, 211.24, 238.37, 233),
Q1_2014 = c(237.61, 130.59, 214.87, 306.24, 300.89),
Q1_2016 = c(264.23, 148.26, 227.5, 387.34, 367.1),
Q1_2018 = c(300.96, 170.92, 258.49, 447.45, 428.45),
Change = c(2.01, 0.709, 1.585, 3.474, 3.284)
)

翻译自: https://www.infoworld.com/article/3316398/do-more-with-r-quick-interactive-html-tables.html

微信 互动表格 工具

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值