R语言系列第一期:R语言背景、下载安装及功能介绍

2019-05-13 10:15:08 浏览数 (1)

之前的文章中我们总体上为大家介绍了R软件的强大功能及其便利性,那么我们就利用这个专题为大家分享一下这款科学绘图和计算的计算机程序的使用方法。作为这个系列的开始,我们首先得为大家介绍一下这款软件的基础知识。

1. R的历史背景

R语言是从S统计绘图语言演变而来,可看作S的“方言”。S语言上世纪70年代诞生于贝尔实验室, 由Rick Becker,  John Chambers,  Allan Wilks 开发的一款用来进行数据探索、统计分析和作图的解释型语言。基于S语言开发的商业软件S-plus,可以方便地编写函数、建立模型,具有良好的扩展性,在国外学术界应用很广。商业软件嘛,毕竟是要收费的。

1995年由新西兰Auckland大学统计系的Robert Gentleman和Ross Ihaka,基于S语言的源代码,编写了一能执行S语言的软件,并将该软件的源代码全部公开,这就是R软件,其命令统称为R语言。R语言沿用至今已经发展到3.5版本,功能也越来越强大,外置的package也来越丰富。实现的各种操作也越来越复杂。总之,一直免费。

#Tips免费的根源:The GNU Manifesto片段:I consider that the golden rule requires that if I like a program I must share it with other people who like it. Software sellers want to divide the users and conquer them, making each user agree not to share with others.

 2. 使用之前

跟SAS和SPSS一比较,你会发现:咦,就下完了?咦,就装好了?

在使用之前,我们肯定要下载和安装软件:(以windows X64为例)

STEP1:下载

R官网:https://www.r-project.org/                   

CRAN: https://mirrors.shu.edu.cn/CRAN/

在CRAN页面选择适配自己系统的R软件(截至编者成文前,最新版本为R-3.5.2)

随后,作为我们平常工作的软件我们只需要选择Base版本即可。

大小为79MB,而且还是32,64位操作系统都有的压缩包,可见有多小。安装起来太方便了。

STEP2:安装

双击下载完成的这个可执行文件,如果有防火

墙提示,照常运行即可,这个从官网下的软件不会有毒,当然你要是从哪个犄角旮旯的网站搜到的话,那就得当心了。

语言的话,推荐英文,毕竟你输入的话只能是英文输入,差别就在结果显示和菜单栏显示这两个地方。当然初学者也可以调成中文版。(这款软件默认不能软件内改变语言,只能安装的时候改)

常规地方默认即可,在选择组件的时候可以只保留你系统适配的版本即可如64位:

其他默认即可。

随后这个乖巧美丽的图标就会安安静静地躺在你的桌

面上了:          ,如果桌面没有的话,发送到桌面快

捷方式一下,或者安装的时候选择创建桌面快捷方式

吧。

#Tips:如果有的朋友觉得这个软件实在是困难,代码记不住,重复操作的时候没保存,还得重新手打,交互性差的话,那么建议你安装一个RStudio软件,同样是开源免费软件。(因为R是开源免费的,它才能合理的出现)而且,这款软件交互性很强,界面友好,初学者适合入手。

3.界面了解(中文版为例)

快捷键:

编辑→GUI设置

#Tips: 在R的控制台中不同的颜色代表不同含义:红色代表输入代码,蓝色代表结果展示,绿色代表注释内容。

4.入门知识

① R是一个强大的计算机,在提示符输入 6 1,然后Enter:

> 6 1

[1] 7

这个[1]代表结果的第一部分,之后会看到结果包含许多部分的情况,比如涉及向量的运算;这里只有一个部分。

同大多数编程软件相似,数学运算的符号: – * / ^ 等等,同时也服从运算顺序的规则,例如:

> (7-5)*3 4/2

[1] 8

R可将运算结果保存在用户命名的变量中

(这里”=”和”<-”都能够将符号右侧的表达式的值赋给左侧的变量):

> sally<-5 7

> ralph=4-2

> sally-ralph

[1] 10

#Tips:再次注意R会区分大小写。Sally和sally是不一样的。

#Tips:多数计算机语言都会含有的累加赋值语句在R也同样适用: a=a 1

#Tips:<- 是 小于和横线(/减)的组合

② R处理数据面对的6种对象:向量,矩阵,数组,因子,列表,数据框。(这部分内容详见番外1)

1. 向量(vector):向量大体上分为3种,数值向量,字符向量,逻辑向量。这三种向量也是R能够运行起来的除了单个元素之外最基础的单位了。

例:

> c(1,2,3,4,5,6,7)

[1] 1 2 3 4 5 6 7

> c(‘a’,’b’,’c’,’d’)

[1] “a” “b” “c” “d”

> c(T,F,T,F,T)

[1]  TRUE  FALSE  TRUE  FALSE  TRUE

2. 矩阵(matrix):矩阵是一个二维的元素向量组,在数学上被广泛运用(如协方差矩阵),在R中,矩阵里的元素可以是任意类型,但必须相同。

例:

> matrix(c(‘a’,’v’,’d’,’f’,’j’,’l’),nrow=2,ncol=3,byrow=T)

     [,1] [,2] [,3]

[1,] “a”  “v”  “d”

[2,] “f”  “j”  “l”

##Tips:终于出现了[2]/[3]了,其实前面的结果如向量里的例子:

[1] 1 2 3 4 5 6 7

这里就有7个元素,其实应该出现[1]-[7]的,但是R会省略掉,只有换行才会显示,下一行的第一个是第几个如:

> rep(c(“I”,’LOVE’,’YOU’),10)

 [1] “I”    “LOVE” “YOU”  “I”    “LOVE” “YOU”  “I”    “LOVE” “YOU”  “I”    “LOVE”

[12] “YOU”  “I”    “LOVE” “YOU”  “I”    “LOVE” “YOU”  “I”    “LOVE” “YOU”  “I”  

[23] “LOVE” “YOU”  “I”    “LOVE” “YOU”  “I”    “LOVE” “YOU”

上述向量总共30个元素,但是当前窗口一行放不下,所以换行显示,在下一行第一个前标记排序。##

3. 数组(array):数组就像是更高维的矩阵,通常使用dim()函数来创建所需要的维度。内部元素类型需相同。

例如下面这个三维数组,改变dim()内的参数数量,就可以改变维度,3个代表三维,4个代表四维,而具体的数值代表维度内的水平。这里第一个参数c(1,2,3)里的元素被重复利用。:

> array(c(1,2,3),dim=c(2,2,2))

, , 1

     [,1] [,2]

[1,]    1    3

[2,]    2    1

, , 2

     [,1] [,2]

[1,]    2    1

[2,]    3    2

4. 因子(factor):因子是使用向量创建的R对象,它将向量与向量中元素不同值一起存储成标签,而不论是哪种类型的向量,最后都存储成字符型元素。有点类似统计学中的分类变量或者定性变量。

例:(这里的数值型向量被转换成字符型向量了)

> colors<-c(1,1,2,3,3,3,1)

> f<-factor(colors)

> print(f, nlevels(f))

[1]  “1” “1” “2” “3” “3” “3” “1”

Levels: “1” “2” “3”

5. 列表(list):列表可以包含许多不同的元素,且每层可含有不同的元素类型。把多个对象复合在一起的时候可以用到列表,同时列表也可以嵌套列表。

例:

> a<-c(2,5,3)

> b<-c(“a”,”o”,”e”)

> c<-c(T,F,T,T)

> d<-c(sin(a))

> list1<-list(a,b,c,d)

> list1

[[1]]

[1] 2 5 3

[[2]]

[1] “a” “o” “e”

[[3]]

[1]  TRUE FALSE  TRUE  TRUE

[[4]]

[1]  0.9092974 -0.9589243  0.1411200

6. 数据框(data frame):是一系列等长度的向量或因子,每列之间元素类型可不同。

例:

> data.frame(

gender=c(‘Male’,’Female’,’Female’),

height=c(171.5,152,165),

weight=c(61,56,55),

age=c(42,38,26)

)

  gender height weight age

1   Male  171.5     61  42

2 Female  152.0     56  38

3 Female  165.0     55  26

#Tips:这里可以看出来数据框和列表的差别是数据框每个列之间要求元素个数相同,并一一对应,而列表则没有限制。

③R对缺失值(NA)处理。

R允许向量包含缺失值,在计算中,对NA的处理会得到NA的结果。不过我们再遇到特殊问题时,对于NA会有特殊的对待。

> mean(c(1,2,3,4,5,6,NA))

[1] NA

第一部分有关于R的基本知识我们就先告一段落,下一部分我们会跟大家探讨语言环境和R软件与外部其他软件之间的交互操作,帮助大家更好地利用各个软件的优势,敬请期待。

参考资料:

1. 《R语言统计入门(第二版)》人民邮电出版社  Peter Dalgaard著

2. 《R语言初学者指南》人民邮电出版社  Brian Dennis著

3. Vicky的小笔记本《blooming for you》by Vicky

0 人点赞