有些业界从业人士对R语言的价值并不认可,他们认为R语言只针对统计分析。

  R语言的确提供了很全面的统计分析的软件包,比如CRAN,Bioconductor,Neuroconductor,以及ROpenSci;并且提供了优秀的包管理功能。

  但在与计算机领域朋友的沟通中,R语言其实已经成长为一种多功能的编程语言,它的功能远不限于数据分析而已。但是,R语言的很多优秀特性并不为R语言社区以外的人所熟知。

  在本文中,我将给大家介绍那些不为人知,却又好用到难以置信的R语言功能。

  1. R的标记语言可以制作可重复生成的Word和Powerpoint文档

  R语言中的rmarkdown包可以制作可重复生成的Word文档和Powerpoint幻灯片,而这只需要改变一行YAML的代码。

  2. 组建和运行一个可交互的网络应用只需要几行代码

  几行R代码就可以生成一个可交互的网络应用。比方说如果使用R语言的flexdashboard包, 你只需要36行代码,就可以生成一个可交互的动态报表,来探索你的BMI指数与全国健康营养检查样本结果的关联。

  3. 几行甚至一行R代码就可以支持网络应用的运行

  另外一个很酷的功能是,通过rsconnect包,R语言还可以仅用一两行代码就支持网络应用的运行。这些应用既可以通过自己的服务器来支持,也可以用shinyapps.io这种云服务器。

  4. 通过使用R语言的dplyr/dbplyr,几乎各种数据库都可以连接

  使用dbplyr包,用R语言连接各种数据库,无论是本地的还是远程的,都非常方便。这个功能使R语言用户可以不用担心底层的数据库,而独立地从主流数据库中抽取数据。R语言的bigrquery包还可以直接利用BigQuery和其他大规模数据存储。

  5. 本地或多个不同的数据存储,在R语言里可以利用相同的dblyr语法来操作

  当你学会如何利用dplyr来转换数据,本地和远程的数据库、数据存储都可以利用相同的代码来操作。这个功能简化了也统一化了操作多个数据库和数据语言的过程。

  6. 你可以用Keras和Tensorflow训练深度学习模型

  使用keras包或TensorFlow接口,你可以利用R语言来学习预训练或者开发全新的深度学习模型。

  7. R语言可以编写和支持应用程序接口(API)

  Plumbr包可以把R函数直接转换成网络应用接口(API),并能很方便的集成到下游应用中去。如果你还安装有Rstuodio Connect,这些函数可以像网络应用一样轻松地被部署。

  8. 你可以使用R语言来生成电子游戏的界面

  不仅是网络应用,R语言甚至可以生成电子游戏的界面。nessy 包可以帮助你生成并部署NES风格的Shiny应用。

  9. 你可以直接通过R语言调用Spark集群来分析数据

  你想用大规模数据训练又大又复杂的机器学习模型么?R语言的sparklyr包帮助你在单机或者大型的Spark集群上直接完成这项任务。

  10. 你可以在R语言中以交互的方式学习R