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

大数据文摘出品

编译:邬亮

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

Image placeholder
Sparkler
未设置
  100人点赞

没有讨论,发表一下自己的看法吧

推荐文章
分享 10 个你可能不知道的 Laravel Eloquent 小技巧

Laravel是一个功能丰富的框架。但是,你无法从官方文档中找到所有可用的功能。以下是一些你可能不知道的功能。 1.获取原始属性 当修改一条Eloquent模型记录的时候你可以通过调用getOrig

14个你可能不知道的JavaScript调试技巧

以更快的速度和更高的效率来调试JavaScript熟悉工具可以让工具在工作中发挥出更大的作用。尽管江湖传言JavaScript很难调试,但如果你掌握了几个技巧,就能用很少的时间来解决错误和bug.文中

你不知道的 PHP 缓存技巧

前言 相信有一定开发经验的PHP程序员都有缓存的使用经验,包括但不限于redis缓存,模板缓存,路由缓存,配置缓存,数据库缓存,还有opcache(真的很有用),但是今天我不准备炒冷饭了,我要讲点你不

你不知道的 CSS : Next-generation web styling

最近看了ChromeDevSummit2019大会视频,了解到了很多之前不知道的CSS新特性,挺有意思的。下面我就介绍几个激动人心的特性。特性总览:StickyStickeyStackSticySli

科普 | 关于联盟区块链你不知道的事

在分布账本技术发明十年后的今天,我们仍然处于大规模应用落地的早期。目前多数流行的公有区块链仍然无法落地,因此近年来越来越多的技术团队将目光集中在那类有使用场景的方向--联盟区块链。第1部分:行业分类从

你不知道的 Graphql

一起入门Graphql[toc]介绍GraphQL既是一种用于API的查询语言也是一个满足你数据查询的运行时。如何理解呢?GraphQL作为通用的REST架构的替代方案而被开发出来,通俗的讲,在架构中

Java和C语言有什么区别?学哪个语言好就业?

Java和C语言都是现阶段IT行业,说起它们之间的区别还是相当大的。许多编程语言的初学者在学习初期,都会遇到这样的问题,Java和C语言学哪个语言好就业?其实只要你学好其中随意一门,就业就都不会有太大

多次问鼎 NuerIPS、MRQA 等国际顶级比赛,百度 NLP 技术到底有多强?

人工智能技术的发展尤其是深度学习技术的成功运用,推动自然语言处理(NLP)进入了高速发展阶段。NLP目前也是应用范围最广的人工智能技术之一,已在智能搜索、智能客服、智能助手、智能推荐等方面得到了大规模

MESH无线究竟有多强? Linksys MR8300无线路由器评测

作为正儿八经的“北漂一族”,常年的蜗居生活让我对大房子的概念渐渐模糊,房东提供的无线路由器也能够满足日常的网络需求。但前段时间回了一趟河北老家才发现,家里的无线路由器已经远远不能够满足我的组网需求。信

【系列】股份制银行在职员工有多少?其中研发又有多少人?

本篇为系列文章第一篇,下一篇, 2018年,股份制银行在IT方面都花了多少钱,做了哪些事?摘要:虽然做过些与银行相关选题,比如《四大行、股份制银行、城商行都在使用什么数据库?》《银行数据库选型之秘》《

Redis功能强大,那也顶不住被滥用啊!

Redis功能强大,数据类型丰富,再快的系统,也经不住疯狂的滥用。通过禁用部分高风险功能,并挂上开发的枷锁,业务更能够以简洁、通用的思想去考虑问题,而不是绑定在某种实现上。Redis根据不同的用途,会

你应该知道的RocketMQ

1.概述在很久之前写过一篇Kafka相关的文章,你需要知道的Kafka,那个时候在业务上更多的是使用的是Kafka,而现在换了公司之后,更多的使用的是Rocketmq,本篇文章会尽力全面的介绍Rock

Github一天标星1k+,程序员需要知道的那些定理和法则

大数据文摘出品编译:蒋宝尚、曹培信摩尔定律知道么?帕金森定律讲的又是啥?作为一名合格的开发人员,除了本身码力超强外,或多或少要知道几条“”潜规则”,例如依赖倒置原则、鲁棒性原则……关于开发人员必须要知

关于网络安全防御,每个中小企业应该知道的5件事

根据美国商业促进局(BBB)的数据显示,你可能会惊讶地发现,小型企业占北美所有企业的97%以上。根据这个统计数字,我认为好消息是,在所有网络攻击中,针对小企业的攻击不到一半。坏消息是,当中小企业受到攻

看完秒变5G专家!关于5G,你必须知道的事儿……

本文转自|鲜枣课堂   什么是5G    5G,就是5thGenerationMobileNetworks(第五代移动通信网络),也可以称为5thGenerationWirelessSystems(第

关于强化学习你应该知道的三件事

如果您有在关注科技相关的新闻,可能读过有关人工智能(AI)应用程序如何通过强化学习训练,在围棋、国际象棋等棋类游戏以及电子游戏中击败人类玩家的报道。作为一名工程师、科学家或研究人员,您可能会希望利用这

企业需要知道的 6个AI/ML关键点

由于人工智能(AI)和机器学习(ML)的迅速发展与应用落地,世界各地的公司正在积极利用AI和ML发展业务,甚至投资数百亿美元。这些技术能够对业务与产生深刻的影响,所以Gartner报告预测,未来将“进

PHP7.4 新特性和废弃的功能

PHP7.4新特性PHP7.4上月28号已经发布了。又带来了一些新特性。可以让我们的代码写的更少了。1.属性添加限定类型 4.数组解包使用展开运算符...解包数组。这个特性,应该又是从js那吸收过来的

Java没有创新了吗?Java 13提供可提高生产率和效率的功能

在其CodeOne会议上,Oracle解释了JavaSE13正式发布后Java的快速发布周期如何带来创新。在过去的二十多年中,Java编程语言新版本的开发速度相对较慢,仅每隔几年就会进行重大更新。甲骨

十个推荐使用的 Laravel 的辅助函数

Laravel包含各种全局辅助函数。laravel中包含大量辅助函数,您可以使用它们来简化开发工作流程。在这里,我将编写10个最好的laravel帮助函数,用于使我的开发更容易。您必须考虑在必要时使

Beego:简约 & 强大并存的 Go 应用框架

引言:Beego是一个快速开发Go应用的HTTP框架,他可以用来快速开发API、Web及后端服务等各种应用,是一个RESTful的框架,主要设计灵感来源于tornado、sinatra和flask这三

原生线程池这么强大,Tomcat 为何还需扩展线程池?

前言Tomcat/Jetty是目前比较流行的Web容器,两者接受请求之后都会转交给线程池处理,这样可以有效提高处理的能力与并发度。JDK提高完整线程池实现,但是Tomcat/Jetty都没有直接使用。

我们不知道要花多少时间解决问题

分享链接:http://kyleprifogle.com/dear-startup/ 我在IT行业工作,发现一个奇怪的现象。职业生涯的早期,我从事Web开发,比如开发CRUD应用、构建API等。我注意

93.7% 的程序员!竟然都不知道 Redis 为什么默认16个数据库?

▍导读在实际项目中Redis常被应用于做缓存,分布式锁、消息队列等。但是在搭建配置好Redis服务器后很多朋友应该会发现和有这样的疑问,为什么Redis默认建立了16个数据库,如下图所示。椐调查发现:

在美国当工程师有多爽

一名美国程序员以自己五分之一的薪资,把自己的工作外包给中国程序员。这样他啥也不干,就完成工作,还年入20万美元…​​​这事发生在2012年,事情是这样的…主人公是个叫Bob的美国程序员。他40多岁,性