
第二章R语言基础
第二章 R语言基础

本章学习目标1.掌握R语言中变量和函数的特点。2.掌握向量的构建、元素提取及运算方法。3.掌握矩阵的构建、元素提取及运算方法,了解数组的特点。4.掌握数据框的构建、元素提取及运算方法。5.掌握列表的构建及元素提取方法
本章学习目标 1. 掌握R语言中变量和函数的特点。 2. 掌握向量的构建、元素提取及运算方法。 3. 掌握矩阵的构建、元素提取及运算方法,了解数组的特点。 4. 掌握数据框的构建、元素提取及运算方法。 5. 掌握列表的构建及元素提取方法

2.1基本概念2.1.1变量及其赋值在一些简单情况下,数据可以直接以原始形式,即常量的形式表现。如>print(3.1415)[1]3.1415这种直接使用常量的形式,至少存在以下几个缺点。其一,当需要在多个地方重复使用这个常量时,有可能会在多次输入的过程中出现录入错误,尤其是在常量比较长、重复使用文比较多的情况下容易出错。其二,如果程序中多处使用这个常量,当需要对这个常量进行修改时,需要对多处同时修改,但当对程序本身不够了解时,容易出错。第三,当某个常量需要随情况不同而变化时,无法使用这种形式。由于存在以上缺点,因此直接使用常量的情况比较少见。在绝大多数情况下,数据都需采用变量的形式来呈现
2.1 基本概念 在一些简单情况下,数据可以直接以原始形式,即常量的形式表现。如: 这种直接使用常量的形式,至少存在以下几个缺点。其一,当需要在多个地方重复使用这 个常量时,有可能会在多次输入的过程中出现录入错误,尤其是在常量比较长、重复使用 又比较多的情况下容易出错。其二,如果程序中多处使用这个常量,当需要对这个常量进 行修改时,需要对多处同时修改,但当对程序本身不够了解时,容易出错。第三,当某个 常量需要随情况不同而变化时,无法使用这种形式。由于存在以上缺点,因此直接使用常 量的情况比较少见。在绝大多数情况下,数据都需采用变量的形式来呈现。 > print(3.1415) [1] 3.1415 2.1.1 变量及其赋值

2.1 基本概念1.变量名一个变量可以视为一个装载数据的容器。在R语言中,变量的类型和大小随所装载数据的类型和大小而变。变量名可以包含字母、数字、下划线和句点,但不能以数字和下划线开头,且大小写字母表示不同的变量。如a、A、a1、A1、a_1、a.1、.a都是合法的变量名,且a和A代表两个不同变量。但需要注意的是,句点开头的变量比较特殊,默认不显示>x1=1; x2=3; .x=5#可以用“”将多条命令写在一行> Is()#显示当前工作环境下的变量名称[1] "x1" "x2"> Is(all.names=T)#强制显示句点开头的变量[1] ".x" "x1" "x2"#删除当前工作环境中的所有变量> rm(list=ls(0)> Is()character(0)>Is(all.names=T)[1] " x
1. 变量名 一个变量可以视为一个装载数据的容器。在R语言中,变量的类型和大小随所装载数据的 类型和大小而变。变量名可以包含字母、数字、下划线和句点,但不能以数字和下划线开 头,且大小写字母表示不同的变量。如a、A、a1、A1、a_1、a.1、.a都是合法的变量名, 且a和A代表两个不同变量。但需要注意的是,句点开头的变量比较特殊,默认不显示。 2.1 基本概念 > x1=1; x2=3; .x=5 #可以用 “;” 将多条命令写在一行 > ls() #显示当前工作环境下的变量名称 [1] "x1" "x2" > ls(all.names=T) #强制显示句点开头的变量 [1] ".x" "x1" "x2" > rm(list=ls()) #删除当前工作环境中的所有变量 > ls() character(0) > ls(all.names=T) [1] ".x

2.1基本概念虽然,理论上只要符合命名规则的变量名都可以使用,但在实际使用时仍然要注意不要随意命名变量。程序中所用变量名应该尽量能够反映其内容。例如,使用height、Weight来命名变量,则不容易在调用时发生混淆。但当程序中所用变量较多,一个单词不足以表示其内容时,直接拼接多个单词可能并不容易识别,此时可以采用首字母大写、下划线或句点进行分隔。例如,需命名一个变量表示心率(heartrate),可以采用HeartRate、heart_rate、heart.rate等形式进行。最后,变量名不能和R语言中的保留字相冲突。可以使用“?reserved”查询R语言所用的保留字
2.1 基本概念 虽然,理论上只要符合命名规则的变量名都可以使用,但在实际使用时仍然要注意不要随 意命名变量。程序中所用变量名应该尽量能够反映其内容。例如,使用height、weight来 命名变量,则不容易在调用时发生混淆。 但当程序中所用变量较多,一个单词不足以表示其内容时,直接拼接多个单词可能并不容 易识别,此时可以采用首字母大写、下划线或句点进行分隔。例如,需命名一个变量表示 心率(heart rate),可以采用HeartRate、heart_rate、heart.rate等形式进行。 最后,变量名不能和R语言中的保留字相冲突。可以使用“?reserved”查询R语言所用的保 留字

2.1基本概念2.变量赋值在指定变量名之后,我们就可以往这个容器里装载数据,这个过程称之为赋值。R语言中的赋值符号为“xx=11)关系比较时的陷阱>1+1#计算1+1[1] 2#给x赋值为1>x=1#计算x+2的值>x+2[1] 3>11<-2Errorin1<-2:invalid (do_set)left-handsidetoassignment
2. 变量赋值 在指定变量名之后,我们就可以往这个容器里装载数据,这个过程称之为赋值。R语言中 的赋值符号为“ x x = 1 1)关系比较时的陷阱 > 1+1 #计算1+1 [1] 2 > x=1 #给x赋值为1 > x+2 #计算x+2的值 [1] 3 > 1 1<-2 #判断是否1小于-2 Error in 1 <- 2 : invalid (do_set) left-hand side to assignment

2.1基本概念如果要判断变量x是否小于-2的,此时若没有在“x=1#判断x是否小于-2>Xxx[1] 22)函数中参数传递时的误用这个错误涉及的原因比较复杂,我们将在下一小节详细解释
如果要判断变量x是否小于-2的,此时若没有在“ x=1 > x x x [1] 2 2)函数中参数传递时的误用 这个错误涉及的原因比较复杂,我们将在下一小节详细解释

2.1基本概念2.1.2函数和参数在R语言中,函数的使用形式如下:函数名参数1,参数2...)每一个函数都会根据其参数返回相应的运算结果。为方便调用,每一个函数都有一个函数名,其命名规则和变量名相同,二者之差别在于后面是否连接圆括号。如> Is=1#命名一个变量“Is,并赋值为1> Is()#这是一个函数,用于显示当前工作环境中的所有变量名称[1] "Is"#当前工作环境中只有前一句创造成功的变量“ls
2.1 基本概念 在R语言中,函数的使用形式如下: 函数名(参数1, 参数2, .) 每一个函数都会根据其参数返回相应的运算结果。为方便调用,每一个函数都有一个函数 名,其命名规则和变量名相同,二者之差别在于后面是否连接圆括号。如 > ls=1 #命名一个变量“ls”,并赋值为1 > ls() #这是一个函数,用于显示当前工作环境中的所有变量名称 [1] "ls" #当前工作环境中只有前一句创造成功的变量“ls” 2.1.2 函数和参数

2.1基本概念1.函数的形式参数与实际参数绝大多数函数的正确运行都需要设置若干参数,这些参数实际上是函数内部环境中的一些变量,也被称作形式参数。这些形式参数构成了每个函数特有的参数列表。当函数被程序调用时,需给形式参数传递具体的数据,这些具体的数据称作实际参数。每个形式参数都对实际参数的属性,如数据类型、数据长度等,有特定的要求,如实际参数不符合要求,则可能会产生一些意外结果,或者提示参数有误。参数值由实际参数向形式参数传递的过程,利用传值符号“="将二者连接。如:>set.seed(seed=1)>rnorm(n=3,mean=0,sd=1)[1]-0.62645380.1836433-0.8356286
1. 函数的形式参数与实际参数 绝大多数函数的正确运行都需要设置若干参数,这些参数实际上是函数内部环境中的 一些变量,也被称作形式参数。这些形式参数构成了每个函数特有的参数列表。当函数被 程序调用时,需给形式参数传递具体的数据,这些具体的数据称作实际参数。 每个形式参数都对实际参数的属性,如数据类型、数据长度等,有特定的要求,如实 际参数不符合要求,则可能会产生一些意外结果,或者提示参数有误。 2.1 基本概念 > set.seed(seed=1) > rnorm(n=3,mean=0,sd=1) [1] -0.6264538 0.1836433 -0.8356286 参数值由实际参数向形式参数传递的过程,利用传值符号“=”将二者连接。如:

2.1基本概念2.形式参数名称的省略在函数rnorm()中,三个形式参数的默认顺序依次为n、mean、sd。当调用这个函数时不打算改变形式参数的默认顺序,则可以省略形式参数的名称。但如果需要改变形式参数的顺序,则不能省略参数名称,必须指定各个实际参数到底传递给哪个形式参数。如:>set.seed(1)>rnorm(3,0,1)[1]-0.62645380.1836433-0.8356286> set.seed(1)>rnorm(mean=0,sd=1,n=3)[1]-0.62645380.1836433-0.8356286
2. 形式参数名称的省略 在函数rnorm()中,三个形式参数的默认顺序依次为n、mean、sd。当调用这个函数时不打 算改变形式参数的默认顺序,则可以省略形式参数的名称。但如果需要改变形式参数的顺 序,则不能省略参数名称,必须指定各个实际参数到底传递给哪个形式参数。如: 2.1 基本概念 > set.seed(1) > rnorm(3,0,1) [1] -0.6264538 0.1836433 -0.8356286 > set.seed(1) > rnorm(mean=0,sd=1,n=3) [1] -0.6264538 0.1836433 -0.8356286