什么是R编程语言?介绍与R基础知识

什么是R软件?

R是一种由Ross Ihaka和Robert Gentleman于1993年开发的编程语言和免费软件。R拥有广泛的统计和图形方法库。它包括机器学习算法、线性回归、时间序列、统计推断等等。大多数R库是用R编写的,但对于计算密集型任务,C、C++和Fortran代码更受欢迎。

R不仅受到学术界的信赖,Uber、Google、Airbnb、Facebook等许多大公司也使用R编程语言。

在R中进行数据分析需要一系列步骤;编程、转换、探索、建模和沟通结果。

  • 编程:R是一个清晰易懂的编程工具。
  • 转换:R由一系列专门为数据科学设计的库组成。
  • 探索:调查数据,优化假设并进行分析。
  • 建模:R提供了广泛的工具来为您的数据捕获正确的模型。
  • 沟通:使用R Markdown将代码、图形和输出集成到报告中,或构建Shiny应用程序与世界分享。

R的用途是什么?

  • 统计推断
  • 数据分析
  • 机器学习算法

R在各行业的应用

如果我们按行业细分R的使用情况,我们会发现学术界位居榜首。R是进行统计的语言。R是医疗保健行业、政府和咨询行业的第一选择。

R by Industry

R包

R的主要用途是,并且将始终是,统计、可视化和机器学习。下图显示了Stack Overflow上哪个R包获得了最多的提问。在前10名中,大部分都与数据科学家的工作流程相关:数据准备和沟通结果。

R Package

R的所有库,近12,000个,都存储在CRAN中。CRAN是免费开源的。您可以下载并使用众多库来执行机器学习或时间序列分析。

R Package

用R进行沟通

R有多种呈现和分享工作的方式,无论是通过markdown文档还是shiny应用程序。所有内容都可以托管在Rpub、GitHub或公司的网站上。

下面是一个托管在Rpub上的演示文稿示例

Communicate with R

Rstudio接受markdown来撰写文档。您可以将文档导出为不同的格式。

  • 文档
    • HTML
    • PDF/Latex
    • Word
  • 表示
    • HTML
    • PDF beamer

Communicate with R

Rstudio有一个很好的工具可以轻松创建应用程序。下面是一个使用世界银行数据的应用程序示例。

Communicate with R

为什么使用R?

数据科学正在塑造公司运营业务的方式。毫无疑问,回避人工智能和机器学习将导致公司失败。最大的问题是应该使用什么工具/语言?

市场上有许多用于数据分析的工具。学习一门新语言需要一些时间投入。下图描绘了学习曲线与语言提供的业务能力之间的关系。负相关关系意味着没有免费午餐。如果您想从数据中获得最佳见解,那么您需要花一些时间学习合适的工具,即R。

Data Science for Business Capability Rating

在图表的左上方,您可以看到Excel和PowerBI。这两个工具都很容易学习,但提供的业务能力并不出众,尤其是在建模方面。中间部分,您可以看到Python和SAS。SAS是专门用于运行业务统计分析的工具,但它不是免费的。SAS是一种点击即可运行的软件。然而,Python是一种学习曲线平缓的语言。Python是部署机器学习和AI的绝佳工具,但缺乏沟通功能。R的学习曲线与之相似,在实现和数据分析之间取得了很好的平衡。

谈到数据可视化(DataViz),您可能听说过Tableau。Tableau无疑是发现图形和图表模式的绝佳工具。此外,学习Tableau并不耗时。数据可视化的一大问题是,您可能永远找不到模式,或者只是创建了大量无用的图表。Tableau是用于快速数据可视化或商业智能的良好工具。当涉及到统计和决策工具时,R更为合适。

Stack Overflow是编程语言的一个大型社区。如果您遇到编码问题或需要理解模型,Stack Overflow随时为您提供帮助。多年来,R的提问-浏览量百分比相对于其他语言急剧上升。这一趋势当然与数据科学时代的蓬勃发展高度相关,但它反映了R语言在数据科学中的需求。

Stack Overflow Traffic

在数据科学领域,有两个工具在竞争。R和Python可能是定义数据科学的编程语言。

您应该选择R吗?

数据科学家可以使用两种出色的工具:R和Python。您可能没有时间同时学习它们,尤其是在开始学习数据科学时。学习统计建模和算法比学习编程语言更为重要。编程语言是计算和传播您的发现的工具。数据科学中最重要的任务是您如何处理数据:导入、清理、准备、特征工程、特征选择。这应该是您的主要关注点。如果您试图同时学习R和Python而没有扎实的统计学背景,那简直是愚蠢的。数据科学家不是程序员。他们的工作是理解数据、操纵它并提出最佳方法。如果您正在考虑学习哪种语言,让我们看看哪种语言最适合您。

数据科学的主要受众是商业专业人士。在商业领域,一个重要的环节是沟通。有许多沟通方式:报告、Web应用、仪表板。您需要一个能够将所有这些结合在一起的工具。

R难学吗?

几年前,R是一门难以掌握的语言。该语言令人困惑,不像其他编程工具那样结构化。为了克服这个主要问题,Hadley Wickham开发了一系列称为tidyverse的包。游戏规则发生了最好的改变。数据处理变得简单而直观。创建图形不再那么困难。

R可以实现最好的机器学习算法。Keras和TensorFlow等包允许创建高端机器学习技术。R还有一个用于执行Xgboost的包,这是Kaggle竞赛的最佳算法之一。

R可以与其它语言进行沟通。可以在R中调用Python、Java、C++。R也可以访问大数据世界。您可以将R连接到不同的数据库,如Spark或Hadoop。

最后,R已经发展并允许并行化操作以加速计算。事实上,R曾因仅使用一个CPU而受到批评。parallel包允许您在机器的不同核心上执行任务。

摘要

总之,R是探索和调查数据的绝佳工具。聚类、相关性、数据缩减等精细分析都可以用R完成。这是最关键的部分,没有良好的特征工程和模型,机器学习的部署将不会产生有意义的结果。