27判别和转换函数 表23给出了常见的类型判别函数和转换函数,记住各类型的英文名称,有助于掌握记 忆这些命令。 表23常见的类型判别函数和转换函数 类型 arace Integer numerIc 判别is ischaracter is complexo is double is integer(I is logical) is nao is numericO 转换(as) as.characteroas.complexoiasdoubleasintegeraslogical as numerico 例26 5 is integer(x)#R中默认为双精度类型 is numeric(x) is double(x) y <-as integer(x) is integer(y) #数值型可以转换为字符型,反之只有 z<-as. character(x)#纯数值构成的字符型可转换为数值型 #否则输出为NA xx<-1:5 yy <-XX> 3 asnumeric(yy) #逻辑变量转换为数值型对应为0和1 zz <-"China #数值型转换逻辑类型规则为非0值转为真值 #此处引号为英文状态下的符号,切勿输入中文输入法 #下的引号,R中不识别中文相关的符号 as numeric(zz) 28数据对象 R语言中,数据处理能力灵活,功能丰富。其中共有7种数据对象,分别为:向量( vector), 矩阵( matrix),数组( array),列表(1ist),数据框( data frame),因子( factor)和时间序 列( time series)。其中最为基础的是向量操作,R语言的精髓在于向量操作,可以说学会 了向量操作,R才算真正入门,然后在掌握向量的基础上,学习和操作矩阵、数据框等更为 高级和统计分析常用的数据对象的生成方法和运算规则 2.8.1.向量 向量的生成和属性常用的命令如下 c()#连接命令 combine seq()#序列命令 sequence rep()#重复命令 replicate length()#长度 -mode()#属性 向量的运算包括算术运算以及R向量化操作的子集运算
6 2.7 判别和转换函数 表 2.3 给出了常见的类型判别函数和转换函数,记住各类型的英文名称,有助于掌握记 忆这些命令。 表 2.3 常见的类型判别函数和转换函数 类型 character complex double integer logical NA numeric 判别(is) is.character() is.complex() is.double() is.integer() is.logical() is.na() is.numeric() 转换(as) as.character() as.complex() as.double() as.integer() as.logical() \ as.numeric() 例 2.6 x <- 5 is.integer(x) # R 中默认为双精度类型 is.numeric(x) is.double(x) y <- as.integer(x) is.integer(y) #数值型可以转换为字符型,反之只有 z <- as.character(x) #纯数值构成的字符型可转换为数值型 z #否则输出为 NA xx <- 1:5 yy <- xx > 3 yy as.numeric(yy) #逻辑变量转换为数值型对应为 0 和 1 zz <- “China” #数值型转换逻辑类型规则为非 0 值转为真值 zz #此处引号为英文状态下的符号,切勿输入中文输入法 #下的引号,R 中不识别中文相关的符号 as.numeric(zz) 2.8 数据对象 R 语言中,数据处理能力灵活,功能丰富。其中共有 7 种数据对象,分别为:向量(vector), 矩阵(matrix),数组(array),列表(list),数据框(data frame),因子(factor)和时间序 列(time series)。其中最为基础的是向量操作,R 语言的精髓在于向量操作,可以说学会 了向量操作,R 才算真正入门,然后在掌握向量的基础上,学习和操作矩阵、数据框等更为 高级和统计分析常用的数据对象的生成方法和运算规则。 2.8.1. 向量 • 向量的生成和属性常用的命令如下: – c( ) #连接命令 combine – seq( ) #序列命令 sequence – rep( ) #重复命令 replicate – length( ) #长度 – mode( ) #属性 • 向量的运算包括算术运算以及 R 向量化操作的子集运算
向量的常用操作函数 向量生成法则 c()将若干个数值或字符串组合为一个变量 seq()产生有规律的数列,一般句法为 seq(下界,上界间距) seq(下界,上界 #间距为1时可以缺省 seq(上界) #下界同时也为1时,上界可缺省 整数下界:整数上界#“:”产生连续整数序列 seq(下界by=间距 length=长度) rep()产生有规律的数列,重复第一个变量若干次 rep(变量,重复次数 rep(变量engh=长度) 注:生成向量后,便可以查看向量具有的属性,即长度leng和向量的类型mode 属性。 ①c()连接命令的代码演示如下例26: 例 2.6 #字符串 y #整数型向量 length(x) mode(x) modey) yy<-c("T","am","a"," student.")#连接命令c不能缺省! yy #字符串向量 length(yy) ②seq()序列命令代码演示如下例27: 例 seq(1020.0.5) #生成从10到20间隔为0.5的序列 seq(1,10) #间距为1,生成从1到10的序列,等价于1:10 X <-seq (10) #间距和下界都为1时,目的同上 seq(5,1,0.5) #生成降序的等差数列 seq(by=0.03 length=15)#生成一定长度的序列, #by所指为间距 length为要生成的序列长度 ③rep()重复命令代码演示如下例28 例 2.8 rep(1,5)#将1重复5次 rep(c(1,3)3)#将向量13重复3次 rep(c(0,x),3)#先将0转为字符0,然后将字符串向量 #0x重复3次 rep(1:3,1:3)#第一个1:3为重复的变量(对象),第二个为对应重复对象单元重复次数 rep(1:3,ep(2,3))#ep(2,3)为3个2,意思为将123都重复2次 注:分析上面两行代码运行结果 rep(c(1,23), length=10)#将向量123重复直到得到长度为10的向量结束
7 • 向量的常用操作函数: 1) 向量生成法则 c( ) 将若干个数值或字符串组合为一个变量 seq( ) 产生有规律的数列,一般句法为: seq(下界,上界,间距) seq(下界,上界) #间距为 1 时可以缺省 seq(上界) #下界同时也为 1 时,上界可缺省 整数下界:整数上界 # “ : ”产生连续整数序列 seq(下界,by=间距,length=长度) rep( ) 产生有规律的数列,重复第一个变量若干次 rep(变量,重复次数) rep(变量,length=长度) 注:生成向量后,便可以查看向量具有的属性,即长度 length 和向量的类型 mode 属性。①c( )连接命令的代码演示如下例 2.6: 例 2.6 x <- “ABC” #字符串 y <- 1:20 # 整数型向量 length(x) mode(x) length(y) mode(y) yy <- c(“I”, “am”, “a”, “student.”) #连接命令 c 不能缺省! yy #字符串向量 length(yy) ②seq( )序列命令代码演示如下例 2.7: 例 2.7 seq(10,20,0.5) #生成从 10 到 20 间隔为 0.5 的序列 seq(1,10) #间距为 1,生成从 1 到 10 的序列,等价于 1:10 x <- seq(10) #间距和下界都为 1 时,目的同上 seq(5,1,-0.5) #生成降序的等差数列 seq(0,by=0.03,length=15) #生成一定长度的序列, #by 所指为间距,length 为要生成的序列长度 ③rep( )重复命令代码演示如下例 2.8 例 2.8 rep(1,5) #将 1 重复 5 次 rep(c(1,3),3) #将向量 1 3 重复 3 次 rep(c(0,’x’),3) #先将 0 转为字符’0’,然后将字符串向量 #’0’ ‘x’重复 3 次 rep(1:3,1:3) #第一个 1:3 为重复的变量(对象),第二个为对应重复对象单元重复次数 rep(1:3,rep(2,3)) #rep(2,3)为 3 个 2,意思为将 1,2,3 都重复 2 次 注:分析上面两行代码运行结果: rep(c(1,2,3),length=10) #将向量 1 2 3 重复直到得到长度为 10 的向量结束
向量的代数运算 代数运算是指加(+)、减()、乘()、除(以及乘方(^或*)运算,其含义是对向量的每个 元素都进行该运算。向量之间运算则是对应元素之间的运算 例2.9 X<c(1,4,5.5) <-X*2+1 a<-1:3 b<-4:6 b a* b 注:两个或多个向量进行运算时,要求它们所包含的元素个数相同(或二者呈整数倍关 系 向量子集访问规则 向量的某个元素的位置是有方括号[]内的数字来表示的,即向量x的第i个元素为刈 例210 Xx <seq(1, by=3, length=10) 取子集有两种方式: )取整数值的下标向量 例211 X<c(34,5,2,6) [1:2] xc(1,24,1) X<c(34,56,2) x-(1:2)]#取负整数值“”"的下标向量表示扣除 i)利用逻辑符号选择限制条件 例 2.12 XX<-seq(1, by=3, length=10) X xxxX>13]#提取所有大于13的元素 注:如果有两个向量,还可以用另一个向量的条件来提取向量的元素 例213 X<-1:20 y<9:10 )#判断y的元素是否大于-1,成立返回真值T,反之F xy>(1)]#如果为T,则返回对应的ⅹ元素。 向量常用操作函数 熟练应用向量中的函数进行运算,是R语言使用能力的具体体现,表2.4给出了常用的 向量操作函数,要做有针对性的学习和应用
8 2) 向量的代数运算 代数运算是指加(+)、减(-)、乘(*)、除(/)以及乘方(^或**)运算,其含义是对向量的每个 元素都进行该运算。向量之间运算则是对应元素之间的运算 例 2.9 x <- c(1,4,5.5) y <- x * 2 + 1 y a <- 1:3 b <- 4:6 a + b a * b b ^ a 注:两个或多个向量进行运算时,要求它们所包含的元素个数相同(或二者呈整数倍关 系) 3) 向量子集访问规则 向量的某个元素的位置是有方括号[ ]内的数字来表示的,即向量 x 的第 i 个元素为 x[i]。 如: 例 2.10 xx <- seq(1, by=3, length=10) xx xx[3] 取子集有两种方式: i) 取整数值的下标向量 例 2.11 x <- c(3,4,5,2,6) x[1:2] x[c(1,2,4,1)] x <- c(3,4,5,6,2) x[-(1:2)] #取负整数值“-”的下标向量表示扣除 ii) 利用逻辑符号选择限制条件 例 2.12 xx <- seq(1, by=3, length=10) xx xx[xx>13] #提取所有大于 13 的元素 注:如果有两个向量,还可以用另一个向量的条件来提取向量的元素 例 2.13 x <- 1:20 y <- -9:10 y > (-1) #判断 y 的元素是否大于-1,成立返回真值 T,反之 F x[ y > (-1) ] #如果为 T,则返回对应的 x 元素。 4) 向量常用操作函数 熟练应用向量中的函数进行运算,是 R 语言使用能力的具体体现,表 2.4 给出了常用的 向量操作函数,要做有针对性的学习和应用