首页 > > > R语言交互式表格操作
作者:黄天元,复旦大学博士在读,热爱数据科学与开源工具(R),致力于利用数据科学迅速积累行业经验优势和科学知识发现,涉猎内容包括但不限于信息计量、机器学习、数据可视化、应用统计建模、知识图谱等,著有《R语言高效数据处理指南》(《R语言数据高效处理指南》(黄天元)【摘要 书评 试读】- 京东图书)。知乎专栏:R语言数据挖掘。邮箱:huang.tian-yuan@qq.com.欢迎合作交流。
虽然R在可视化方面非常自由灵活而美丽,但是在表格可视化方面,好像还略微没有跟上。比如典型的科研作图中,如果要做一张标准的三线表,还是以csv格式导入到Excel中然后交互式地设置格式更为方便。最近读到这么一篇文章,让R用户看到了新的方向。
Forget about Excel, Use these R Shiny Packages Instead - Appsilon Data Science | End to End Data Science Solutions
上面的文章中介绍了多个解决表格交互式操作的R包,包括:
DT: DT: An R interface to the DataTables library
DTedit: jbryer/DTedit
rhandsontable: jrowen/rhandsontable
excelR: A Wrapper of the 'JavaScript' Library 'jExcel'
formattable: renkun-ken/formattable
rpivotTable: smartinsightsfromdata/rpivotTable
对于个人来说,重要的参考,首先是rhandsontable能够直接调用sparkline进行作图,这样就能做出这样的图出来:

首先只要认为设定转化为json格式即可,代码是这样子的:
DF$chart = c(sapply(1:5,
function(x) jsonlite::toJSON(list(values=rnorm(10),
options = list(type = "bar")))),
sapply(1:5,
function(x) jsonlite::toJSON(list(values=rnorm(10),
options = list(type = "line")))))有意思的是,这个代码生成之后,我们可以在表格生成之后人为交互式地改变所有的表格数值,比如:

这样我们就可以随心所欲地改变这些图的格式了。我以前用DT调用sparkline也做出过这样的图,但是在设置这些数字的时候还是花了一点心思,因此能够交互操作时很棒的。
如果后面能够把在R中生成的数据框自由地定制成报告或论文中能够直接用的表格,还能够直接插入到Office中,那么就太美妙了!
补充一下:刚刚试了table1这个包,发现它确实能够直接生成三线表,真的是不错。步骤是,首先生成html,如果在rstuio中就另存为html,然后把html中的内容复制粘贴到word即可。table1的链接如下:
CRAN - Package table1不过table1只针对列联表这种情况,对于表格可视化而言,还有flextable和huxtable包这些方案。但是迄今为止,还是没有找到特别好的办法,现在还是老老实实导出csv去Excel操作。
原文作者:;如有侵权,请联系管理员删除。