R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。
R是统计领域广泛使用的诞生于年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由ATT贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。
最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来新西兰奥克兰大学的RobertGentleman和RossIhaka及其他志愿人员开发了一个R系统。由“R开发核心团队”负责开发。
超实用性的Python零基础入门到进阶视频源码淘宝¥2购买已下架R可以看作贝尔实验室(ATTBellLaboratories)的RickBecker、JohnChambers和AllanWilks开发的S语言的一种实现。当然,S语言也是S-Plus的基础。所以,两者在程序语法上可以说是几乎一样的,可能只是在函数方面有细微差别,程序十分容易地就能移植到一程序中,而很多一的程序只要稍加修改也能运用于R。
R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX、Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统。
相比于其他统计分析软件,R还有以下特点:
1.R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。
2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如SPSS、SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。
3.所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base—R的基础模块、mle—极大似然估计模块、ts—时间序列分析模块、mva—多元统计分析模块、survival—生存分析模块等等。
4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG、BMP、PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。
5.如果加入R的帮助邮件列表一,每天都可能会收到几十份关于R的邮件资讯。可以和全球一流的统计计算方面的专家讨论各种问题,可以说是全世界最大、最前沿的统计学家思维的聚集地。
R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。
R是另一种开源编程语言,尽管没有Python那么流行,但在数据科学界仍然非常活跃,深受人们欢迎。一同事表示,他的工作完全不涉及编程。但是,仍然发现能够在R中进行分析,查看保留率、流失率、交流量等等,这是非常有用的。
若要找一份非编程的工作,R是最流行的编程语言。它正在取代SQL和SAS这些闭源的付费语言。由于企业既想降低成本,又想雇佣无论日常工作中是否编程,都能进行分析的人,他们都在转向R。
R是一套完整的数据处理、计算和制图软件系统。其功能包括:数据存储和处理系统;数组运算工具(其向量、矩阵运算方面功能尤其强大);完整连贯的统计分析工具;优秀的统计制图功能;简便而强大的编程语言:可操纵数据的输入和输出,可实现分支、循环,用户可自定义功能。
另外,R被“没有计算机编程技能的统计学家、工程师和科学家所使用。它在学术界、金融、制药、媒体和市场营销中都很流行”。
对于那些出于某些非常正当理由而不在工作中进行编程的人来说,R是最流行的编程语言。首先,它是开源的。和Python一样,无需支付任何费用。
R还提供了集成的开发编辑器RStudio,使其更容易使用。R有一个强大的开源软件包生态系统,使任何人都可以非常简单地用几行代码运行统计分析,并以几行代码创建出一个可供发布的图形。
非程序员想要学习R,尤其是对于那些没有或不想从事编程工作的人来说,我认为最好是找一个你真正关心的项目,然后设定一个明确的目标。你没有工作的必要——至少现在你可以不知道如何编程。
你之前没有任何编程经验,所以学习曲线会非常陡峭。你需要一些你深深热爱的东西。只有这样才能让你克服令人沮丧的障碍、知识空白和用户错误,这也是每个编程初学者都需要经历的一次旅程。