购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.2 R语言基础

3.2.1 常用保留字

保留字是R语言中被赋予特定意义的一些单词。在编写代码时,不可以把这些保留字作为变量、函数、类、模块和其他对象的名称来使用。R语言中的常用保留字如表3.1所示。

表3.1 R语言中常用的保留字

表3.1中有几个比较特殊的保留字,是数据处理过程中经常遇到的保留字。

(1)NA:表示缺失值,是Not Available的缩写。

(2)Inf:表示无穷大,是Infinite的缩写。

(3)NaN:表示非数值,即不是一个数,是Not a Number的缩写。

(4)NULL:表示空值。

3.2.2 变量

程序运行过程中,其值可以发生改变的量称为“变量”。每个变量都有一个用于标识自己的名字,如a。在R语言中,不需要先声明变量名及其类型,直接赋值即可创建各种类型的变量。

变量的命名并不是任意的,应遵循以下几条规则。

(1)变量名可以包含英文字母、数字、下画线和英文句号(.)。

(2)变量名不能存在中文(新版本可以使用中文,但不建议)、空格、“-”、“$”等符号。

(3)不能以数字和下画线开头。

(4)变量名以”.”符号开头的,后面不能是数字,如果是数字会变成0.××××。

(5)变量名不能是R语言的保留字(如表3.1中常用的保留字)。

(6)谨慎使用小写字母l和大写字母O,容易与1和0混淆。

(7)应选择有意义的单词作为变量名。

为变量赋值可以通过符号“<-”来实现,最好在“<-”符号前后各空一个格。

例如,创建一个变量number,并为其赋值为1024,代码如下:

     number <- 1024       # 创建变量number并赋值为1024,该变量为数值型

上述创建的变量number就是数值型的变量。

如果直接为变量赋值一个字符串,那么该变量就是字符型。代码如下:

     myname <- "明日科技"       # 字符型的变量

另外,R语言是一种动态类型语言,也就是说,变量的类型可以改变。例如,在RGui中创建变量myname,为其赋值"明日科技",输出变量类型会发现该变量为字符型;为其赋值1024,输出变量类型会发现该变量为数值型。代码如下:

说明

在R语言中,使用内置函数mode()可以返回变量类型。

3.2.3 基本数据类型

R语言的基本数据类型包括数值型(numeric,含数字、整型、双整型)、字符型(character)、逻辑型(logical)等,如表3.2所示。例如,一个人的姓名通常使用字符型存储,年龄通常使用数值型存储,婚否则可以使用逻辑型存储。

表3.2 基本数据类型

下面对基本的数据类型进行详细介绍。

1.数值型(numeric)

数值型又可以分为数字(numeric)、整型(integer)、双整型(double)等。其中,整型用来表示整数数值,即没有小数部分的数值。R语言中,在数字后面添加L,即声明该数字以整型方式储存。在计算机内存中,整型比双整型更加准确(除非该整数非常大或非常小)。

双整型用于储存普通数值型数据,包括正数、负数和小数。R语言中,输入的任何一个数值都默认以Double类型存储。在数据科学里,常被称为数值型(numeric)。

2.字符型(character)

字符型向量用以储存一小段文本,在R语言中字符要加双引号表示。字符型向量中的单个元素被称为“字符串(string)”,字符串不仅可以包含英文字母和中文,也可以由数字或符号组成。需要注意的是一定要加上引号,如"mingrisoft"、"明日科技",不加引号会报错,单引号或双引号都可以。

3.逻辑型(logical)

逻辑型变量也就是我们常说的布尔变量(Boolean),其值为TRUE和FALSE,或者大写的T和F,需要注意的是英文字母全是大写。另外一种取值为NA缺失值(未知值),数值型和字符型也有NA。

4.复数类型(complex)

R语言中的复数与数学中的复数完全一致,都由实部和虚部组成,使用j或J表示虚部。当表示一个复数时,可以将其实部和虚部相加。例如,一个复数的实部为3.14,虚部为12.5j,则这个复数可表示为3.14+12.5j。复数类型主要用来存储数据的原始字节。

读者可通过以下3个函数查看数据类型。

class()函数:用于查看数据类型。

mode()函数:用于查看数据大类。

typeof()函数:用于查看数据细类。

示例代码如下:

运行程序,结果如图3.2所示。从运行结果得知不同函数的返回结果略有不同。

图3.2 查看数据类型

除此之外,在程序中还可以对数据类型进行判断和转换,主要用到的函数如表3.3所示。

表3.3 数据类型的判断和转换函数

其中,is族函数用于判断数据类型,返回值为TRUE和FALSE;as族函数用于实现数据类型之间的转换。代码如下:

     is.numeric("明日科技")  # 判断"明日科技"是否为数值型
     as.numeric("88")        # 将字符串"88"转换为数值型88

3.2.4 运算符

运算符是一些特殊的符号,主要用于数学计算、比较大小和逻辑运算等。R语言中的运算符主要包括算术运算符、关系(比较)运算符、逻辑运算符、赋值运算符和其他运算符。在R语言中,运算符主要用于向量运算,下面介绍一些常用的运算符。

1.算术运算符

在R语言中,算术运算符主要用于向量运算,即元素与元素之间的算术运算,如表3.4所示。

表3.4 算术运算符

说明

向量是R语言中最简单、最重要的一种数据结构,由一系列同一种数据类型的有序的元素构成,类似一维数组。另外,上述代码c()函数主要用于创建向量。例如x<-c(1,2),是将1和2两个数组合成向量(1,2),并存入变量x中。有关向量更加详细的介绍可参见4.1节。

下面重点看一下R语言和其他编程语言有哪些不同。

(1)R语言中,乘方运算既可以使用“^”符号,也可以使用“**”符号。

(2)除法“/”运算与C/C++不同,在C/C++中若不能整除则向下取整;R语言与Python是一样的,均采用浮点数计算。例如,下面的代码分别为R语言和Python的除法运行结果。

R语言代码:

     > 1/3
     [1] 0.3333333

Python代码:

     >>> 1/3
     0.3333333333333333

【例3.1】 计算学生成绩的分差及平均分 (实例位置:资源包\Code\03\01)

某学生3门课程的成绩如图3.3所示,通过编程实现:

(1)Python和R语言课程的分数之差;

(2)3门课程的平均分。

运行RGui,新建程序脚本,名称为demo.R。在该文件中定义3个变量,用于存储各门课程的分数,然后应用减法运算符计算分数差,应用加法运算符和除法运算符计算平均成绩,最后输出计算结果。代码如下:

运行程序,结果如图3.4所示。

图3.3 学生成绩

图3.4 计算学生成绩的分差及平均分

代码解析

第6~7行代码中的paste()函数用于连接字符串。

2.比较运算符

在R语言中,比较运算符可对两个向量中的元素逐个进行比较,比较后的结果为布尔值。常用的比较运算符如表3.5所示。

表3.5 比较运算符

3.逻辑运算符

逻辑运算符可对真(TRUE)、假(FALSE)两种布尔值进行运算,即对两个向量中的元素逐个进⾏⽐较,运算后的结果仍是一个布尔值。R语言中,逻辑运算符仅适用于逻辑型、数值型或复杂类型的向量。常用的逻辑运算符如表3.6所示。

表3.6 逻辑运算符

4.赋值运算符

在R语言中,赋值运算符用于为向量赋值,如表3.7所示。

表3.7 赋值运算符

以上赋值运算符,在编程过程中常用的是标准赋值运算符“<-”。

5.其他运算符

还有一些特殊的运算符,用于特定目的,而不是一般的数学运算或逻辑运算,如表3.8所示。

表3.8 其他运算符 iHC6PaThDa46GCxS0faFcGd+CGoaJXBmv8Wgri8Ezul/ApBRaAxdFtO81XfsZflq

点击中间区域
呼出菜单
上一章
目录
下一章
×