R是一个有着统计分析功能及强大作图功能的软件系统,是由Ross Ihaka和Robert Gentleman共同创立。它是属于GNU系统的一个自由、免费、源码开放的软件,同一时候也是一个用于统计计算和统计制图的优秀工具。

一、R的发展历史

要说R。就不得不先来说一下S语言。

1980年左右。AT&T贝尔实验室设计出一种在统计领域广泛使用的S语言。

S语言是一种解释型语言。被设计用来进行数据探索、统计分析和作图。

S语言最初的实现版本号主要是S-PLUS。它是一个基于S语言的商业软件,由MathSoft公司的统计科学部进一步完好。

后来。Auckland大学的Robert Gentleman和Ross Ihaka及其它志愿人员开发了一个R系统。

R是基于S语言的一个GNU项目。所以也能够当作S语言的一种实现。也就是说,通经常使用S语言编写的代码都能够不作改动地在R环境下执行。

正由于如此,有人说R是S-PLUS的一个“克隆”。

二、R的主要功能

R既是一种软件,也能够说是一种语言,它R是一套完整的数据处理、计算和制图软件系统。

R的主要功能包括:数据存储和处理、数组运算、统计分析、统计制图等。

此外,它提供了简便而强大的编程语言,可操纵数据的输入和输出,可实现分支、循环,也可实现用户自己定义功能。

三、R的下载与安装

R的安装文件支持多个平台。即我们能够在Windows,Linux或Mac OS X上使用R。

R安装包的下载网址是:https://cran.r-project.org/。点击该链接。能够进入如图1所看到的的页面。



图1 R安装包的展示页面

从图1中我们能够看到。R的安装包支持Windows,Linux和Mac OS X三个平台。大家能够依据自己所使用的系统选择相应的安装包。

笔者使用的是Windows系统,因此点击图1中的“Download R for Windows”,能够看到如图2所看到的的页面。



图2 Windows平台下的R安装包概况

从图2中能够看到,R的安装包分为基础包(base)、贡献包(contrib)和工具包(Rtools)。

对于刚開始学习的人来说,使用基础包就足够了。

当大家想要对R进行深入的学习的时候,再来下载贡献包(contrib)和工具包(Rtools)。

点击图2中的“base”。进入如图3所看到的的下载页面。



图3 R安装包的下载页面

点击图3中的“Download R 3.2.3 for Windows”就可以下载R的基础安装包。

安装包下载好之后。双击就可以開始安装。依照安装提示进行一步步的操作,就可以将R安装到自己的电脑上,同一时候在桌面上创建快捷方式。

首次进入R软件的界面如图4所看到的。



图4 R软件的界面

从图4能够看出,R默认的命令提示符是“>”,它表示正在等待输入命令。

四、R的基本原理

在学习R之前,我们先来了解一下R的工作原理。

我们知道,像C、C++、Java这种编程语言,我们在使用它们的时候。必须要构造一个完整的程序形式,单独输入一条命令是无法执行的。但R却不是这种。由于R是一种解释型语言。而不是编译语言,这就意味着输入的命令能够直接被执行。而不须要先构成一个完整的程序形式。R的语法也是非常之简单和直观的。

在R执行的时候,全部变量、数据、函数及结果都以对象(objects)的形式存在计算机的活动内存中,并冠有相应的名字代号。我们能够通过用一些运算符(如算术、逻辑、比較等)和一些函数来对这些对象进行操作。

关于R中的函数,我们可用图5来形象地描写叙述。



图5 R的函数

图5中的參量(arguments)可能是一些对象(如数据、方程、算式等)。有些參量在函数里被预设为缺省值。用户则可按需对其作个别的改动,所以执行一个R函数可能不须要设定不论什么參量。原因是全部的參量都能够被默觉得缺省值。当然也有可能该函数本身就不含不论什么參量。

R的具体工作原理如图6所看到的。



图6 R工作原理示意图

从图6中能够看出,在R中进行的全部操作都是针对存储在活动内存中的对象的。对数据、结果或图表的输入与输出都是通过对计算机硬盘中的文件读写而实现。用户通过输入一些命令调用函数,分析得出的结果能够被直接显示在屏幕上,也能够被存入某个对象或被写入硬盘。由于产生的结果本身就是一种对象。所以它们也能被视为数据并能像一般数据那样被处理分析。数据文件既可从本地磁盘读取也可通过网络传输从远程服务器端获得。

全部能使用的R函数都被包括在一个库(library)中,该库存放在磁盘的R_HOME/library文件夹下(R_HOME是安装R的地址,如笔者的库文件夹为:D:\Program Files\R\R-3.2.3\library)。这个文件夹下含有具有各种功能的包(packages),这些包也是依照文件夹的方式组织起来的。

在全部的包中,名为base的包能够算是R的核心。由于它内嵌了R语言中全部像数据读写与操作这些最主要的函数。

在每一个包内,都有一个子文件夹R,这个文件夹里又都含有一个与此包同名的文件(比如在包base中,有这样一个文件R_HOME/library/base/R/base),该文件正是存放全部函数的地方。

五、R的对象

在R中进行的全部操作都是针对存储在活动内存中的对象进行的。因此,对象在R中占领了核心的地位。

1.对象的命名规则

对象的名字必须是以一个字母(A-Z或a-z)开头,中间能够包括字母、数字(0-9)、点(.)及下划线(_)。

同一时候,R对象的名字是区分大写和小写的,所以像x和X就能够代表两个全然不同的对象。

2.对象的简单操作

(1)对象的赋值

一个对象能够通过赋值操作来产生。R语言中的赋值(“ssign”)符号通常是由一个尖括号与一个负号组成的箭头形标志。该符号能够是从左到右的方向。也能够相反。

比如。我们能够打开R软件的执行界面。在界面上为对象n赋值。

> n <- 15
> n
[1] 15
> 5 -> n
> n
[1] 5

执行结果行中的方括号里的数字1表示从n的第一个元素開始显示。我们能够看到。R中的对象能够直接使用,而不用像非常多编程语言那样,必须要先定义之后再使用。假设该对象已经存在,那么它曾经的值将会自己主动被新值冲掉(这点与大部分编程语言是相同的)。

(2)对象的大写和小写

之前说过,R对象的名字是区分大写和小写的,比如。我们能够为对象x和X赋不同的值。

> x <- 1
> X <- 10
> x
[1] 1
> X
[1] 10

(3)赋值方式的多样性

在R中。给对象赋值有多种形式,能够是直接赋一个数值,也能够是一个算式或一个函数的结果。

> n <- 10 + 2
> n
[1] 12
> n <- 3 + rnorm(1)
> n
[1] 3.819211
> (10 + 2) * 5
[1] 60

执行rnorm(1)将产生一个服从平均数为0、标准差为1的标准正态分布的随机变量。

我们也能够仅仅是输入函数或表达式而不把它的结果赋给某个对象,但这样在窗体中展示的结果将不会被保存到内存中。

(4)显示内存中的对象

在R中,要用分号(;)来隔开同一行中的不同命令语句。字符串类型的变量要用双引號(“”)括起来。

函数ls的功能是显示全部在内存中的对象,但仅仅会列出对象名。

> name <- "Carmen"; n1 <- 10; n2 <- 100; m <- 0.5
> ls()
[1] "A" "compar" "m" "M" "n" "N" "n1" "n2"
[9] "name" "x" "X" "z"

假设仅仅须要显示出在名称中带有某个指定字符的对象。则通过设定选项pattern(可简写为pat)来实现。

> ls(pat = "m")
[1] "compar" "m" "name"

假设进一步限为显示在名称中以某个字母开头的对象,则可:

> ls(pat = "^m")
[1] "m"

执行函数ls.str()将会展示内存中全部对象的具体信息。

> ls.str()
A : chr "Gomphotherium"
compar : logi TRUE
m : num 0.5
M : 'data.frame': 1 obs. of 3 variables:
$ n1: num 10
$ n2: num 100
$ m : num 0.5
n : num 3.82
N : num 2.1e+23
n1 : num 10
n2 : num 100
name : chr "Carmen"
x : num 1
X : num 10
z : cplx 0+1i

(5)删除对象

要在内存中删除某个对象。可利用函数rm。执行rm(x)将会删除对象x,执行rm(x,y)将会删除对象x和y,而执行rm(list=ls())则会删除内存中的全部对象。

当然,ls()函数中的一些选项相同也能够运用到rm中来。以选择的删除某些特定的对象,如rm(list=ls(pat=”^m”))。

3.对象的类别概览

如图7所看到的。

R语言概述的更多相关文章

  1. R语言简单介绍

    R语言 概述 R语言是用于统计分析,图形表示和报告的编程语言和软件环境. R语言由Ross Ihaka和Robert Gentleman在新西兰奥克兰大学创建,目前由R语言开发核心团队开发. R语言的 ...

  2. 第一篇:R语言数据可视化概述(基于ggplot2)

    前言 ggplot2是R语言最为强大的作图软件包,强于其自成一派的数据可视化理念.当熟悉了ggplot2的基本套路后,数据可视化工作将变得非常轻松而有条理. 本文主要对ggplot2的可视化理念及开发 ...

  3. 如何在R语言中使用Logistic回归模型

    在日常学习或工作中经常会使用线性回归模型对某一事物进行预测,例如预测房价.身高.GDP.学生成绩等,发现这些被预测的变量都属于连续型变量.然而有些情况下,被预测变量可能是二元变量,即成功或失败.流失或 ...

  4. R语言实战(三)基本图形与基本统计分析

    本文对应<R语言实战>第6章:基本图形:第7章:基本统计分析 =============================================================== ...

  5. R语言实战(五)方差分析与功效分析

    本文对应<R语言实战>第9章:方差分析:第10章:功效分析 ================================================================ ...

  6. R语言重要数据集分析研究——需要整理分析阐明理念

    1.R语言重要数据集分析研究需要整理分析阐明理念? 上一节讲了R语言作图,本节来讲讲当你拿到一个数据集的时候如何下手分析,数据分析的第一步,探索性数据分析. 统计量,即统计学里面关注的数据集的几个指标 ...

  7. R语言统计学习-1简介

    一. 统计学习概述 统计学习是指一组用于理解数据和建模的工具集.这些工具可分为有监督或无监督.1.监督学习:用于根据一个或多个输入预测或估计输出.常用于商业.医学.天体物理学和公共政策等领域.2.无监 ...

  8. R语言 ggplot2包

    R语言  ggplot2包的学习   分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...

  9. 手把手教你学习R语言

    本文为带大家了解R语言以及分段式的步骤教程! 人们学习R语言时普遍存在缺乏系统学习方法的问题.学习者不知道从哪开始,如何进行,选择什么学习资源.虽然网络上有许多不错的免费学习资源,然而它们多过了头,反 ...

随机推荐

  1. sps和pps的简单理解记录

    最近博客写出了日记的既视感... 使用RTP传输H264的时候,需要用到sdp协议描述,其中有两项:Sequence Parameter Sets (SPS) 和Picture Parameter S ...

  2. 【Qt开发】QThread 实用技巧、误区----但文档中没有提到

    本文主要内容: 在任务一中,用 四 种方式实现:点击界面按钮,开线程运行一段程序,结果显示在一个Label上.1. 用不正确的方式得到看似正确的结果2. 用Qt Manual 和 例子中使用的方法3. ...

  3. USB2.0学习笔记连载(十):关于WIN8及以上系统哈希值问题

    笔者上一篇博客讲解了关于驱动的安装,笔者使用的系统是win8.1系统,那么对于win8系统及以上系统,会对外部设备,没有在windows系统中进行签名过的,都是不允许在windows系统中进行安装的, ...

  4. mock数据和代码生成

    git clone https://gitee.com/fleam/CodeGeneration.git

  5. js if判断 遍历 替换图片地质

    <script> $(document).ready(function() { var s = "The rain in Spain falls mainly in the pl ...

  6. tomcat部署时war和war exploded区别

    war模式—-将WEB工程以包的形式上传到服务器 war exploded模式—-将WEB工程以当前文件夹的位置关系上传到服务器

  7. HttpComponents-Client学习

    HttpComponents-Client 学习 官方文档:http://hc.apache.org/httpcomponents-client-ga/tutorial/html/index.html ...

  8. Linux编程_Shell脚本练习题

    1,编写shell脚本,计算1~100的和. #! /bin/bash `;do sum=$[$i+$sum] done echo $sum 2,编写shell脚本,输入一个数字n并计算1~n的和. ...

  9. e787. 用JSpinner实现小时选择

    // Create a calendar object and initialize to a particular hour if desired Calendar calendar = new G ...

  10. Git -- 远程仓库简介

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...