r语言中的数据分析(做数据分析为什么一定要学R语言)(1)

r语言中的数据分析(做数据分析为什么一定要学R语言)(2)

R 是一种灵活的编程语言,专为促进探索性数据分析、经典统计学测试和高级图形学而设计。R 拥有丰富的、仍在不断扩大的数据包库,处于统计学、数据分析和数据挖掘发展的前沿。R 已证明自己是不断成长的大数据领域的一个有用工具,并且已集成到多个商用包中,比如 IBM SPSS® 和 InfoSphere®,以及 Mathematica。本文提供了一位统计学家Catherine Dalzell对 R 的价值的看法。

为什么选择 R?

R可以执行统计。您可以将它视为 SAS Analytics 等分析系统的竞争对手,更不用提 StatSoft STATISTICA 或 Minitab 等更简单r语言中的数据分析(做数据分析为什么一定要学R语言)(3)的包。r语言中的数据分析(做数据分析为什么一定要学R语言)(4)政府、企业和制药行业中许多专业统计学家和方法学家都将其r语言中的数据分析(做数据分析为什么一定要学R语言)(5)全部职业生涯都投入到了 IBM SPSS 或 SAS 中,但却没有编写过一行 R 代码。所以从某种程度上讲,学习和使用 R 的决定事关企业文化和您希望如何工作。我在统计咨询实践中使用了多种工具,但我的大部分工作都是在 R 中完成的。以下这些示例给出了我使用 R 的原因:

1. R 是一种强大的脚本语言

我最近被要r语言中的数据分析(做数据分析为什么一定要学R语言)(6)求分析一个范围研究的结果。研究人员检查了 1,600 篇研究论文,并依据多个条件对它们的内容进行编码,事实上,这些条件是大量具有多个选项和分叉的条件。它们的数据(曾经扁平化到一个 Microsoft® Excel® 电子r语言中的数据分析(做数据分析为什么一定要学R语言)(7)表格上)包含 8,000 多列,其中大部分都是空的。研究人员希望统计不同类别和标题下的总数。R 是一种强大的脚本语言,能够访问类似 Perl 的正则表达式来r语言中的数据分析(做数据分析为什么一定要学R语言)(8)处理文本。凌乱的数据需要一种编程语言r语言中的数据分析(做数据分析为什么一定要学R语言)(9)资源,而且尽管 SAS 和 SPSS 提供了脚本语言来执行下拉菜单以外的任务,但 R 是r语言中的数据分析(做数据分析为什么一定要学R语言)(10)作为一种编程语言编写的,所以是一种更适合该用途的工具。

r语言中的数据分析(做数据分析为什么一定要学R语言)(11)

2. R 走在时代的前沿

统计学中的许多新发展最初都是以 R 包的r语言中的数据分析(做数据分析为什么一定要学R语言)(12)形式出现的,然后才被引入到商业平台中。我最近获得了一项对患者回忆的医疗研究的数据。对于每位患者,r语言中的数据分析(做数据分析为什么一定要学R语言)(13)我们拥有医生r语言中的数据分析(做数据分析为什么一定要学R语言)(14)建议的治疗r语言中的数据分析(做数据分析为什么一定要学R语言)(15)项目数量,以及患者实际记住的r语言中的数据分析(做数据分析为什么一定要学R语言)(16)项目数量。自然模型是r语言中的数据分析(做数据分析为什么一定要学R语言)(17)贝塔—二项分布。这从上世纪 50 年代就已r语言中的数据分析(做数据分析为什么一定要学R语言)(18)知道,但将该模型与感兴趣的变量相关联的估算过程是最近才出现的。像这样的数据通常由广义估计方程式 (general estimating equations, GEE) r语言中的数据分析(做数据分析为什么一定要学R语言)(19)处理,但 GEE 方法是渐进的,而且假设抽样范围很广。我r语言中的数据分析(做数据分析为什么一定要学R语言)(20)想要一种具有r语言中的数据分析(做数据分析为什么一定要学R语言)(21)贝塔—二项 R 的广义线性模型。一个最新的 R 包估算了这一模型:Ben Bolker 编写的 betabinom。而 SPSS 没有。

r语言中的数据分析(做数据分析为什么一定要学R语言)(22)

3. 集成文档发布

R 完美地集成了 LaTeX 文档发布系统,这意味着来自 R 的统计输出和图形可嵌入到可供发布的文档中。这不是所有人都用得上,但如果您希望便携异步关于数据分析的书籍,或者只是不希望将结果复制到文字r语言中的数据分析(做数据分析为什么一定要学R语言)(23)处理文档,最短且最优雅的路径就是通过 R 和 LaTeX。

4. 没有成本

r语言中的数据分析(做数据分析为什么一定要学R语言)(24)作为一个小型企业的所有者,我很r语言中的数据分析(做数据分析为什么一定要学R语言)(25)喜欢 R 的免费特定。即使对于更大的企业,r语言中的数据分析(做数据分析为什么一定要学R语言)(26)知道您能够临时调入某个人并立即让他们坐在工作站旁使用一流的分析软件,也很不错。无需担忧预算。

R 是什么,它有何用途?

r语言中的数据分析(做数据分析为什么一定要学R语言)(27)作为一种编程语言,R 与许多其他语言都很类似。任何编写过代码的人都会在 R 中找到很多熟悉的东西。R 的特殊性在于它支持的统计哲学。r语言中的数据分析(做数据分析为什么一定要学R语言)(28)这里简单科普几个相关知识。

1. 统计学r语言中的数据分析(做数据分析为什么一定要学R语言)(29)革命:S 和探索性数据分析

R 是 S 的一种开源实现,是一种用于数据分析和图形的编程环境。

2. 有态度的语言:S、S-r语言中的数据分析(做数据分析为什么一定要学R语言)(30)Plus 和假设测试

最初的 S 语言非常重视 Tukey 的 EDA,已达到只能 在 S 中执行 EDA 而不能执行其他任何操作的程度。这是一种具有态度的语言。

我在使用 R 时会发生什么?

本文不是一部 R 教程。r语言中的数据分析(做数据分析为什么一定要学R语言)(31)下面的示例仅试图让您了解 R 会话看起来是什么样的。

R 二进制文件可用于 Windows、Mac OS X 和多个 Linux® 发行版。源代码也可供人们自行编译。

在 Windows® 中,安装程序将 R 添加到开始菜单中。要在 Linux 中启动 R,可打开一个终端窗口并在提示符下键入 R。

在提示符下键入一个命令,R 就会响应。

此时,在真实的环境中,您可能会从一个外部数据文件将数据读入 R 对象中。R 可从各种不同格式的文件读取数据,但对于本示例,我使用的是来自 MASS 包的 michelson 数据。这个包附带了 Venables and Ripley 的标志性文本 Modern r语言中的数据分析(做数据分析为什么一定要学R语言)(32)Applied Statr语言中的数据分析(做数据分析为什么一定要学R语言)(33)istics r语言中的数据分析(做数据分析为什么一定要学R语言)(34)with S-Plus。michelson 包含来自测量光速的流行的 Michelson and Morley 实验的结果。

r语言中的数据分析(做数据分析为什么一定要学R语言)(35)清单 1 中提供的命令r语言中的数据分析(做数据分析为什么一定要学R语言)(36)可以加载 MASS 包,获取并r语言中的数据分析(做数据分析为什么一定要学R语言)(37)查看 michelson 数据。图 2 显示了这些命令和来自 R 的响应。每一行包含一个 R 函数,它的参数放在方括号 ([]) 内。

r语言中的数据分析(做数据分析为什么一定要学R语言)(38)清单 1. 启动一个 R 会话

2 2 # R can be a calculator. R responds, correctly, r语言中的数据分析(做数据分析为什么一定要学R语言)(39)with 4.library(“MASS”) # Loads into memory r语言中的数据分析(做数据分析为什么一定要学R语言)(40)the functions and data sets from# package MASS, that accompanies Modern r语言中的数据分析(做数据分析为什么一定要学R语言)(41)Applied Statr语言中的数据分析(做数据分析为什么一定要学R语言)(42)istics r语言中的数据分析(做数据分析为什么一定要学R语言)(43)in Sdata(michelson) # Copies r语言中的数据分析(做数据分析为什么一定要学R语言)(44)the michelson data r语言中的数据分析(做数据分析为什么一定要学R语言)(45)set into r语言中的数据分析(做数据分析为什么一定要学R语言)(46)the workspace.ls # Lr语言中的数据分析(做数据分析为什么一定要学R语言)(47)ists r语言中的数据分析(做数据分析为什么一定要学R语言)(48)the contents r语言中的数据分析(做数据分析为什么一定要学R语言)(49)of r语言中的数据分析(做数据分析为什么一定要学R语言)(50)the workspace. r语言中的数据分析(做数据分析为什么一定要学R语言)(51)The michelson data r语言中的数据分析(做数据分析为什么一定要学R语言)(52)is there.head(michelson) # Dr语言中的数据分析(做数据分析为什么一定要学R语言)(53)isplays r语言中的数据分析(做数据分析为什么一定要学R语言)(54)the first few lines r语言中的数据分析(做数据分析为什么一定要学R语言)(55)of thr语言中的数据分析(做数据分析为什么一定要学R语言)(56)is data r语言中的数据分析(做数据分析为什么一定要学R语言)(57)set.# Column r语言中的数据分析(做数据分析为什么一定要学R语言)(58)Speed contains Michelson and Morleys estimates r语言中的数据分析(做数据分析为什么一定要学R语言)(59)of r语言中的数据分析(做数据分析为什么一定要学R语言)(60)the# r语言中的数据分析(做数据分析为什么一定要学R语言)(61)speed r语言中的数据分析(做数据分析为什么一定要学R语言)(62)of light, less 2r语言中的数据分析(做数据分析为什么一定要学R语言)(63)99,000, r语言中的数据分析(做数据分析为什么一定要学R语言)(64)in km/s.# Michelson and Morley ran five Experiments r语言中的数据分析(做数据分析为什么一定要学R语言)(65)with 20 runs each.# r语言中的数据分析(做数据分析为什么一定要学R语言)(66)The data r语言中的数据分析(做数据分析为什么一定要学R语言)(67)set contains indicator variables for experiment and run.help(michelson) # Calls a help screen, which describes r语言中的数据分析(做数据分析为什么一定要学R语言)(68)the data r语言中的数据分析(做数据分析为什么一定要学R语言)(69)set.

r语言中的数据分析(做数据分析为什么一定要学R语言)(70)清单 2. R 中的一个箱线图

# Basic boxplotr语言中的数据分析(做数据分析为什么一定要学R语言)(71)with(michelson, boxplot(r语言中的数据分析(做数据分析为什么一定要学R语言)(72)Speed ~ Expt))# I can ar语言中的数据分析(做数据分析为什么一定要学R语言)(73)dd colour and labels. I can also r语言中的数据分析(做数据分析为什么一定要学R语言)(74)save r语言中的数据分析(做数据分析为什么一定要学R语言)(75)the results r语言中的数据分析(做数据分析为什么一定要学R语言)(76)to r语言中的数据分析(做数据分析为什么一定要学R语言)(77)an object.michelson.bp = r语言中的数据分析(做数据分析为什么一定要学R语言)(78)with(michelson, boxplot(r语言中的数据分析(做数据分析为什么一定要学R语言)(79)Speed ~ Expt, xlab=”Experiment”, las=1,ylab=”r语言中的数据分析(做数据分析为什么一定要学R语言)(80)Speed r语言中的数据分析(做数据分析为什么一定要学R语言)(81)of Light – 2r语言中的数据分析(做数据分析为什么一定要学R语言)(82)99,000 m/s”,main=”Michelson-Morley Experiments”,col=”slateblue1″))# r语言中的数据分析(做数据分析为什么一定要学R语言)(83)The current estimate r语言中的数据分析(做数据分析为什么一定要学R语言)(84)of r语言中的数据分析(做数据分析为什么一定要学R语言)(85)the r语言中的数据分析(做数据分析为什么一定要学R语言)(86)speed r语言中的数据分析(做数据分析为什么一定要学R语言)(87)of light, r语言中的数据分析(做数据分析为什么一定要学R语言)(88)on thr语言中的数据分析(做数据分析为什么一定要学R语言)(89)is scale, r语言中的数据分析(做数据分析为什么一定要学R语言)(90)is r语言中的数据分析(做数据分析为什么一定要学R语言)(91)734.5# Ar语言中的数据分析(做数据分析为什么一定要学R语言)(92)dd a horizontal line r语言中的数据分析(做数据分析为什么一定要学R语言)(93)to highlight thr语言中的数据分析(做数据分析为什么一定要学R语言)(94)is value.abline(h=r语言中的数据分析(做数据分析为什么一定要学R语言)(95)734.5, lwd=2,col=”purple”) #Ar语言中的数据分析(做数据分析为什么一定要学R语言)(96)dd modern r语言中的数据分析(做数据分析为什么一定要学R语言)(97)speed r语言中的数据分析(做数据分析为什么一定要学R语言)(98)of light

Michelson and Morley 似乎有r语言中的数据分析(做数据分析为什么一定要学R语言)(99)计划地高估了光速。各个实验r语言中的数据分析(做数据分析为什么一定要学R语言)(100)之间似乎也存在一定的不均匀性。

在对分析感到r语言中的数据分析(做数据分析为什么一定要学R语言)(101)满意后,我可以将所有命令保存到一个 R 函数中。参见r语言中的数据分析(做数据分析为什么一定要学R语言)(102)清单 3。

r语言中的数据分析(做数据分析为什么一定要学R语言)(103)清单 3. R 中的一个简单函数

MyExample = function{library(MASS)data(michelson)michelson.bw = r语言中的数据分析(做数据分析为什么一定要学R语言)(104)with(michelson, boxplot(r语言中的数据分析(做数据分析为什么一定要学R语言)(105)Speed ~ Expt, xlab=”Experiment”, las=1,ylab=”r语言中的数据分析(做数据分析为什么一定要学R语言)(106)Speed r语言中的数据分析(做数据分析为什么一定要学R语言)(107)of Light – 2r语言中的数据分析(做数据分析为什么一定要学R语言)(108)99,000 m/s”, main=”Michelsen-Morley Experiments”,col=”slateblue1″))abline(h=r语言中的数据分析(做数据分析为什么一定要学R语言)(109)734.5, lwd=2,col=”purple”)}

这个简单示例演示了 R 的多个重要功能:

保存结果—boxplot 函数返回一些有用的统计数据和一个图表,您可以通过类似 michelson.bp = … 的负值语句将这些结果保存到一个 R 对象中,并在需要时提取它们。任何赋值语句的结果都可在 R 会话的整个过程中获得,并且可以r语言中的数据分析(做数据分析为什么一定要学R语言)(110)作为进一步分析的主题。boxplot 函数返回一个用于绘制箱线图的统计数据(中位数、四分位等)矩阵、每个箱线r语言中的数据分析(做数据分析为什么一定要学R语言)(111)图中的项数,以及异常值。

r语言中的数据分析(做数据分析为什么一定要学R语言)(112)

公式语言— R(和 S)有一种紧凑的语言来表达统计模型。参数中的代码 r语言中的数据分析(做数据分析为什么一定要学R语言)(113)Speed ~ Expt 告诉函数在每个 Expt (实验数字)级别上绘制 r语言中的数据分析(做数据分析为什么一定要学R语言)(114)Speed 的箱线图。如果希望执行方差分析来测试各次实验中的速度r语言中的数据分析(做数据分析为什么一定要学R语言)(115)是否存在显著差异,那么可以使用相同的公式:lm(r语言中的数据分析(做数据分析为什么一定要学R语言)(116)Speed ~ Expt)。公式语言可表达丰富多样的统计模型,包括交叉和嵌套效应,以及固定和随机因素。

用户定义的 R 函数是一种编程语言。

R 已r语言中的数据分析(做数据分析为什么一定要学R语言)(117)进入 21 世纪

Tukey 的探索性数据分析方法已成为常规课程。r语言中的数据分析(做数据分析为什么一定要学R语言)(118)我们在教授这种方法,而统计学家也在使用该方法。R 支持这种方法,这解释了它为什么仍然如此流行的原因。面向对象性还帮助 R 保持最新,因为新的数据r语言中的数据分析(做数据分析为什么一定要学R语言)(119)来源需要新的数据结构来执行分析。InfoSphere® Streams r语言中的数据分析(做数据分析为什么一定要学R语言)(120)现在支持对与 r语言中的数据分析(做数据分析为什么一定要学R语言)(121)John Chambers 所设想的不同的数据执行 R 分析。

R 需要主流硬件吗?

我在一台运行 Crunchbang Linux 的宏碁上网本上运行了这个示例。R 不需要笨重的机器来执行中小规模的分析。20 年来,人们一直认为 R 之所以缓慢是因为它是一种解释性语言,而且它可以分析的数据大小受计算机内存的r语言中的数据分析(做数据分析为什么一定要学R语言)(122)限制。这是真的,但这通常与r语言中的数据分析(做数据分析为什么一定要学R语言)(123)现代机器毫无干系,除非应用程序非常大(大数据)。

R 的不足之处

公平地讲,R 也有一些事做不好或完全不会做。不是每个用户都适合使用 R:

1. R 不是一个数据仓库

在 R 中输入数据的最简单方式是,将数据输入到其他地方,然后将它导入到 R 中。人们已经努力地为 R 添加了一个电子r语言中的数据分析(做数据分析为什么一定要学R语言)(124)表格前端,但它们还没流行起来。电子r语言中的数据分析(做数据分析为什么一定要学R语言)(125)表格功能的缺乏不仅会影响数据输入,还会让以直观的方式检查 R 中的数据变得很困难,就像在 SPSS 或 Excel 中一样。

2. R 使普通的任务变得很困难

举例而言,在医疗研究中,您对数据做的第一件事就是计算所有变量的概括统计量,列出无响应的地方和缺少的数据。这在 SPSS 中只需 3 次单击即可完成,但 R 没有内置的函数来计算这些非常明显的信息,并以r语言中的数据分析(做数据分析为什么一定要学R语言)(126)表格r语言中的数据分析(做数据分析为什么一定要学R语言)(127)形式显示它。您可以非常轻松地编写一些代码,但有时您只是想指向要计算的信息并单击鼠标。

3. R 的学习曲线是非平凡的

初学者可打开一个菜单驱动的统计平台并在几分钟内获取结果。不是每个人都希望成为程序员,然后再成为一名分析家,而且或许不是每个人都需要这么做。

4. R 是开源的

R 社区很大、非常成熟并且很活跃,R 无疑属于比较成功的开源r语言中的数据分析(做数据分析为什么一定要学R语言)(128)项目。R 的实现已有超过 20 年r语言中的数据分析(做数据分析为什么一定要学R语言)(129)历史,这是一个久经考验的概念和久经考验的产品。但对于任何开源产品,可靠性都离不开透明性。r语言中的数据分析(做数据分析为什么一定要学R语言)(130)我们信任它的代码,因为r语言中的数据分析(做数据分析为什么一定要学R语言)(131)我们可自行检查它,而且其他人可以检查它并报告错误。这与自行执行基准测试并验证其软件的企业r语言中的数据分析(做数据分析为什么一定要学R语言)(132)项目不同。而且对于更少使用的 R 包,您没有理由假设它们会实际生成r语言中的数据分析(做数据分析为什么一定要学R语言)(133)正确的结果。

End.

作者:程序之道

r语言中的数据分析(做数据分析为什么一定要学R语言)(134)来源:简书

r语言中的数据分析(做数据分析为什么一定要学R语言)(135)深圳线下·爱数据社区工具系列课程

工具课程:真实数据分析师如何解决实际问题

「MySQL实战案例讲解」

r语言中的数据分析(做数据分析为什么一定要学R语言)(136)活动时间:1月12日 r语言中的数据分析(做数据分析为什么一定要学R语言)(137)13:00-17:00

温馨提示:课程需要现场操作,请参加课程的

同学r语言中的数据分析(做数据分析为什么一定要学R语言)(138)记得携带笔记本电脑

,