R语言有多强大?十个你不知道的功能

大数据 数据分析
有些业界从业人士对R语言的价值并不认可,他们认为R语言只针对统计分析。在本文中,我将给大家介绍那些不为人知,却又好用到难以置信的R语言功能。

[[261055]]

大数据文摘出品

编译:邬亮

有些业界从业人士对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

R语言的swirl包可以用来生成可交互的R语言学习教程。

本文介绍了十个R语言中的功能,这些当然不是R语言全部的优秀特征。比如你还可以连接到AWS Polly来生成语音合成软件,或者用R语言生成能够回应语音命令的Shiny应用,甚至编写深度学习的软件来利用加速度数据去判断哈利波特的法术。R语言已经不单单是一门只能用来做数据分析的编程语言(虽然它在这方面超强!),对R语言的掌握能够为你打开一扇开发实用和好玩应用的大门。

相关报道:

https://simplystatistics.org/2019/03/13/10-things-r-can-do-that-might-surprise-you/

【本文是51CTO专栏机构大数据文摘的原创译文,微信公众号“大数据文摘( id: BigDataDigest)”】

     大数据文摘二维码

戳这里,看该作者更多好文

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2011-09-06 13:56:07

Vista服务器网卡

2010-08-23 09:20:11

Linux命令

2024-09-11 16:21:09

2022-03-03 23:56:29

JavaScriptArityAnonymous

2013-05-23 11:57:42

以太网千兆网络以太网发展

2019-07-22 06:33:55

R语言编程函数

2011-08-16 13:15:15

MongoDB

2013-09-10 11:21:25

移动互联网移动开发移动市场

2021-07-12 07:59:06

安全 HTML 属性

2023-04-09 23:37:31

JavaScript开发

2018-04-04 12:05:04

Postgre数据planner

2011-08-11 14:13:02

Windows8

2020-06-12 09:20:33

前端Blob字符串

2020-07-28 08:26:34

WebSocket浏览器

2011-09-09 14:02:41

linuxscreen

2015-10-30 09:56:10

WiFiWiFi技术传感

2020-06-22 08:09:22

GitHub工具开发

2022-03-10 09:11:33

JavaScrip开发JSON

2013-05-31 10:57:32

html5html5 api

2020-09-11 08:48:52

Python 3开发代码
点赞
收藏

51CTO技术栈公众号