您可能还想在数据库中而不是应用程序中执行一些分析。IBM在提供示例以及R源代码方面做得很好。考虑图7中所示的分析。
将数据从数据库中流到R中会花费大量时间。如果消除大部分网络流,就可以大大减少分析所需的时间。您会注意到数据库内回归分析的时间是2.7秒。在应用程序中完成同样的任务需要1.47分钟——比原来的时间长30倍。计算得到的回归系数完全相同。唯一改变的是,一种分析在数据驻留的地方进行回归,而另一种分析首先将数据从数据库流到R应用程序。
IBM实现并不是唯一的;我碰巧有一个Bluemix账户。Vertica (HP)、Greenplum (Pivotal)、Oracle和Teradata都有R包。然而,我不确定其他人在数据库内分析的方向上走了多远。
顺便说一下,我惊喜地发现,在浏览器中运行RStudio Server Pro就像在我的桌面上运行RStudio一样——做得很好。
闪亮和R减价
当然,开发人员和分析人员从来没有真正摆脱编写代码和确定结果的简单过程。高层管理人员想要月度报告,中层管理人员想要玩弄数据,却不知道背后隐藏着什么。输入闪亮的
和rmarkdown
,来自RStudio的两个R包分别用于Web应用程序和报表。
图8显示了一个运行在RStudio中的简单闪亮应用程序。密码来自教训2闪亮的教程。
您可以使用Shiny来构建交互式的和“反应性的”Web应用程序,以及对应于HTML控件元素的小部件,例如输入
字段。RStudio的“反应性”意味着当一个值发生变化时,所有依赖于已变化值的值都将重新计算,正如您在电子表格程序中所期望的那样。图9显示了一个交互式的发亮应用程序,其中两个小部件用于输入,一个阴影的美国人口普查数据choropleth图用于输出。
图9中的交互式闪亮应用程序是一个很好的例子,它展示了如何允许中层管理人员使用数据,而不需要知道隐藏的内容。
若要限制输入更改时重新计算的内容,则无功
包装器函数缓存它的值,只重新计算那些无效的值。我就不给你们举个例子了,尽管你们会发现一个很亮的例子第六课。闪亮的应用程序可以运行在自己的硬件上,也可以发布到shinyapps.io服务器。作为一个快速示例,请看图10。
闪亮的应用程序应该满足中层管理人员的需求。那么高层管理人员呢?
如果你是GitHub的用户,或者在过去的10年里一直关注着Web和开发人员的环境,你就会知道减价的语言用于生成HTML和其他基于标记语言的格式化文档。RStudio包含了一个Markdown实现,并扩展了它以包含嵌入的R代码块以及R减价包。您还可以使用Shiny创建交互式R Markdown文档,并将它们发布到您自己的Shiny服务器上shinyapps.io。例如,请参见图11。
R的幂
正如我们所看到的,R对于数据科学家和统计学家来说是一个有用的工具,它的一些非标准的脚本语言对于那些可能使用Python(使用NumPy、Pandas和statsmodel)的程序员来说是很有意义的;SQL(用于保存在数据库中的数据);或SAS(及其GUI衍生品,JMP)用于数据分析。与Excel相比,R在统计和绘图方面具有更强的能力,特别是在您根据特定需要添加包的情况下,而且它更值得审计。验证R脚本要比验证充满公式的电子表格容易得多。
随着RStudio作为IDE的添加,开发R应用程序可以变得非常高效。RStudio Server允许公司利用大型服务器硬件中可用的巨大RAM和许多处理器,Shiny将R变成一个Web应用服务器,而R Markdown允许您使用R来生成报告。
另一方面,R的强大功能和大量可用的R包可能造成相当可怕的学习曲线。在学习和使用R时,拥有一些统计学背景会有很大帮助,但对所有数据科学都是如此。对于任何其他具有许多可用库的编程语言来说,学习R的最佳策略是一步一步来。
这篇文章《学会用R处理大数据》最初发表于信息世界 。