R语言学习笔记(一)

什么是R语言?

R是用于统计分析、绘图的语言和操作环境。R是属于GNU系统的一个自由、免费、源代码开放的软件,它是一个用于统计计算和统计制图的优秀工具。

  • R语言的发展历史:
    R是统计领域广泛使用的诞生于1980年左右的S语言的一个分支。可以认为R是S语言的一种实现。而S语言是由AT&T贝尔实验室开发的一种用来进行数据探索、统计分析和作图的解释型语言。最初S语言的实现版本主要是S-PLUS。S-PLUS是一个商业软件,它基于S语言,并由MathSoft公司的统计科学部进一步完善。后来新西兰奥克兰大学的Robert Gentleman和Ross Ihaka及其他志愿人员开发了一个R系统。由“R开发核心团队”负责开发。R可以看作贝尔实验室(AT&T BellLaboratories)的RickBecker,JohnChambers和AllanWilks开发的S语言的一种实现。当然,S语言也是S-Plus的基础。所以,两者在程序语法上可以说是几乎一样的,可能只是在函数方面有细微差别,程序十分容易地就能移植到一程序中,而很多一的程序只要稍加修改也能运用于R。
  • R语言的特点:
    R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R还有以下特点:
    1.R是自由软件。这意味着它是完全免费,开放源代码的。可以在它的网站及其镜像中下载任何有关的安装程序、源代码、程序包及其源代码、文档资料。标准的安装文件身自身就带有许多模块和内嵌统计函数,安装好后可以直接实现许多常用的统计功能。
    2.R是一种可编程的语言。作为一个开放的统计编程环境,语法通俗易懂,很容易学会和掌握语言的语法。而且学会之后,我们可以编制自己的函数来扩展现有的语言。这也就是为什么它的更新速度比一般统计软件,如,SPSS,SAS等快得多。大多数最新的统计方法和技术都可以在R中直接得到。
  • 所有R的函数和数据集是保存在程序包里面的。只有当一个包被载入时,它的内容才可以被访问。一些常用、基本的程序包已经被收入了标准安装文件中,随着新的统计分析方法的出现,标准安装文件中所包含的程序包也随着版本的更新而不断变化。在另外版安装文件中,已经包含的程序包有:base一R的基础模块、mle一极大似然估计模块、ts一时间序列分析模块、mva一多元统计分析模块、survival一生存分析模块等等.
    4.R具有很强的互动性。除了图形输出是在另外的窗口处,它的输入输出窗口都是在同一个窗口进行的,输入语法中如果出现错误会马上在窗口口中得到提示,对以前输入过的命令有记忆功能,可以随时再现、编辑修改以满足用户的需要。输出的图形可以直接保存为JPG,BMP,PNG等图片格式,还可以直接保存为PDF文件。另外,和其他编程语言和数据库之间有很好的接口。
    R是基于S语言的一个GNU项目,所以也可以当作S语言的一种实现,通常用S语言编写的代码都可以不作修改的在R环境下运行。 R的语法是来自Scheme。R的使用与S-PLUS有很多类似之处,这两种语言有一定的兼容性。S-PLUS的使用手册,只要稍加修改就可作为R的使用手册。所以有人说:R,是S-PLUS的一个“克隆”。

写在前面:学习任何一种语言都要善于使用帮助,在R语言中也是如此。
例:

> ?read.csv()

在函数前加上“?”即可调出帮助。

R语言常用语法

  • R语言创建向量和矩阵

(1) c()
用c()来创建一个向量用c()来创建一个向量
例:

> x1 = c(1,2,3,4,5)
> x1
    [1] 1 2 3 4 5
> 

(2)length()
用length()来求一个向量的长度
例:

> length(x1)
    [1] 5

(3)mode()
用mode()来显示数据类型
例:

> mode(x1)
    [1] "numeric"

注:R语言中有四种基本类型,分别是逻辑型(Logical),数字型(Numeric),复合型(Complex),字符型(Character)
(4)rbind()
用rbind()可以把x1和x2以行的形式组合成矩阵
例:

> rbind(x1,x2)
    [,1] [,2] [,3] [,4] [,5]
    x1    1    3    5    7    9
    x2    0    2    4    6    8

利用rbind()可以用于增加一行
例:

> rbind(x1,1:5) 
    [,1] [,2] [,3] [,4] [,5]
    x1    1    3    5    7    9
    x2    1    2    3    4    5

(5)cbind()
用cbind()可以把x1与x2以列的形式组合成矩阵
例:

> cbind(x1,x2) 
     x1 x2 
[1,] 1  0 
[2,] 3  2 
[3,] 5  4 
[4,] 7  6 
[5,] 9  8

同理,利用cbind()可以用于增加一列

> cbind(x1, 1:5)  
     x1 x2 
[1,] 1  1 
[2,] 3  2 
[3,] 5  3 
[4,] 7  4 
[5,] 9  5
  • R语言求平均值、和、连乘、最值、方差、标准差

求平均值:mean()
例:

> x = c(1:10)
> mean(x)
[1] 5.5

求和:sum()
例:

> sum(x)
[1] 55

求最小值:min()
例:

> min(x)
[1] 1

求最大值:max()
例:

> max(x)
[1] 10

求方差:var()
例:

> var(x)
[1] 9.166667

求标准差:sd(),也可以用方差开根号
例:

> sd(x)
[1] 3.02765
  • which()函数

显示最大数的下标:

> which.max(a)

显示数列中最大的数:

> a[which.max(a)]

显示最小数的下标:

> which.min(a)

显示数列中最小的数:

> a[which.min(a)]

显示数据为x的下标

> which(a==x)

显示数据大于x的下标

> which(a>x)
  • 随机数据的产生
rnorm(n, mean = 0, sd = 1)   #正态分布的随机数
runif(n, min = 0, max = 1)   #平均分布的随机数
rep(1,5)                     #把1重复5次

猜你喜欢

转载自blog.csdn.net/EverestRs/article/details/82934100