|
R语言生成报告的四种方法
工业数据分析总共分几步?
三步:搜集数据、做模型、出报告。
报告作为分析工作最后一环,也是最重要的一环,不仅要求内容准确详尽、逻辑清晰,样式排版还要正式美观,以求在最短的时间内说服客户,让其有醍醐灌顶之感。
然而工业客户对报告的要求不仅于此,比如有的客户在演示现场,就让调整报告里的模型参数,比如旋转设备轴承参数,重新查看报告结果;
有的客户想在报告的密成一团散点图里查看每一个散点对应的温度和压力,想自由选择月份查看故障预警模型的曲线结果;
有的客户甚至要把报告内容作为模板,给其业主们批量定时的生成周报月报。这些需求总结起来,就是要求报告具备交互性,可以自动生成和分布式部署,R语言正是解决上述问题的利器。
先放两张截图,看一下用R语言输出的报告:
R语言是非常受欢迎的数据分析工具,R语言分析结果的应用方式基本有两个方向:定向应用开发和直接产出分析报告。利用R做数据分析,并输出报告的方式大致分成四类:
第一类:R+word/ppt。
报告的文本部分和R代码部分完全隔离,写报告的方式就是不停的粘贴复制。在word中编辑分析报告,把数据分析的结果和可视化图片粘贴复制到word中。这种输出报告的方式,不容易复制,比较适合一次性的分析报告。如果我们需要利用不同数据进行分析、产出多份报告时,这种写报告的方式就犹如黄牛犁地,只能不停的吭哧了。。
第二类:R+Latex。
文学式编程(Literate Programming)是由大神Knuth提出来的一种编程范式,它与传统的结构化编程不同,文学式编程是把代码撕裂成多个代码片段,然后在通过拼接构成一个应用。这种思路不是就是我们写报告的思路嘛,一个段落一个段落的写。不过要解决两个问题:一个是文本如何写、数据分析代码如何写;一个是文本代码和数据分析代码如何有机的结合。前者已经有强大无比的Latex和HTML来编辑文本,R语言做数据分析,自然不是问题。后者如何解决呢?有大神谢益辉写的Knitr包,完美的解决了第二问题,Knitr包稍后详解。
第三类:Rmarkown。
如果我们精通Latex和HTML,那写起R报告来绝对是杠杠滴,可是入门小白一看Latex和HTML复杂的规则,基本上三天就从入门到放弃了。Latex、HTML都是文本标记语言,尤其Latex还有着完美的排版系统,但是他们的很多强大功能对输出一份数据分析报告而言有点大炮轰蝇子,有没有为数据分析量身定制的文本标记语言呢?那就是Markdown,一种轻量级的文本标记语言,大神谢益辉已经完美的将其融入到R中了。具体思想是Reproducible Research,指的是数据分析连同原始数据和代码一起发布的,这样其他人可以验证其结果,并在此基础上进一步研究。
第四类:ReporterRs/officer包。
上述产生的报告代码可以重构,数据可以更新,但是不同报告的结论分析还是要要定制化的。有没有一种方式只对数据进行更新就可以产生针对数据集定制化分析报告呢?答案是肯定的,利用的open office API就可以搞定了。
综上所述,利用R语言生成分析报告方式主要有Latex方式、HTML方式、Markdown方式和R语言调用open office API的方式,原文对knitr包(第二、三种的报告生成方式依赖此包),第二、三、四种输出报告的方式有详细的介绍。想看具体的操作步骤和实现方式,就在在公众号回复“报告”,获取完整文章吧!
R语言写报告的四层境界,其中方法优劣,因人而异。简单总结起来大致如下:
1)copy&paste:简单的、一次性的报告,比较适合采用这种方式来做;
2)R&HML&LATEX:只能输出html和pdf格式的报告,可以进行数据重构,输出多次报告;
3)Rmarkdown:兼容多种文本标记语言和多种编程语言,报告的输出格式也是多样格式输出;
4)ReportRs&officer:适合高频输出、需要规模化分布式部署的报告。
|
|