目录
一、数值型的向量对象
1.1 建立规则型的数值向量对象使用序列符号
1.2 简单向量对象的运算
1.3 建立向量对象:seq()函数
1.4 连接向量对象:c()函数
1.5 重复向量对象:rep()函数
1.6 numeric()函数
1.7 程序语句短语跨行的处理
二、常见向量对象的数学运算函数
2.1 常见运算
2.2 prod()函数
2.3 累积运算函数
2.4 差值运算函数
2.5 排序函数
2.6 计算向量对象长度的函数
2.7 基本统计函数
三、Inf、-Inf、NA的向量运算
四、R语言的字符串数据属性
五、探索对象的属性
5.1 探索对象元素的属性
5.2 探索对象的结构
5.3 探索对象的数据类型
六、向量对象元素的存取
6.1 使用索引取得向量对象的元素
6.2 使用负索引挖掘向量对象内的部分元素
6.3 修改向量对象元素值
6.4 认识系统内建的数据集letters和LETTERS
七、逻辑向量
7.1 基本应用
7.2 Inf、-Inf和缺失值NA的处理
7.3 多组逻辑表达式的应用
7.4 NOT表达式
7.5 逻辑值TRUE和FALSE的运算
八、不同长度向量对象相乘的应用
九、向量对象的元素名称
9.1 建立简单含元素名称的向量对象
9.2 names()函数
9.3 使用系统内建的数据集islands
一、数值型的向量对象
数值型的向量对象可分为规则型的数值向量对象或不规则型的数值向量对象。
1.1 建立规则型的数值向量对象使用序列符号
从起始值到最终值,每次递增1,如果是负值则每次增加-1。例如从1到5,可用1:5方式表达;从11到16,可用11:16表达。在“1:5”或“11:16”的表达式中的“:”符号,即冒号,在R语言中被称为序列符号。
1.2 简单向量对象的运算
向量对象的一个重要功能是向量对象在执行运算时,向量对象内的所有元素将同时执行运算。
一个向量也可以与另一个向量对象相加。
不同长度的向量对象相加,较长向量对象的长度是较短对象的长度的倍数。
1.3 建立向量对象:seq()函数
seq()函数可用于建立一个规则型的数值向量对象,它的使用格式如下:
seq(from,to,by=width,length.out=numbers)
上述的from是数值向量对象的起始值,to是数值向量对象的最终值,by则指出每个元素的增值。如果省略by参数同时没有length.out参数存在,则增值是1或-1。length.out参数字段可设定seq()函数所建立的元素个数。
1.4 连接向量对象:c()函数
c()函数的c为concatenate的缩写。这个函数并不是一个建立向量对象的函数,只是一个将向量元素连接起来的函数。
c()函数可以将元素连接起来,其实也可以使用该函数将两个向量对象连接起来。
1.5 重复向量对象:rep()函数
如果向量对象内某些元素是重复的,则可以使用rep()函数建立这种类型的向量对象,它的使用格式如下:
rep(x,times=重复次数,each=每次每个元素重复次数,length.out=向量长度)
如果rep()函数只含有x和times参数,则“times=”参数可省略。
1.6 numeric()函数
numeric()函数也是建立一个向量对象,主要用于建立一个固定长度的向量对象,同时向量对象元素的默认值是0。
1.7 程序语句短语跨行的处理
下面是几种可能发生跨行的状况。
(1)该行以数学符号(+、-、*、/)作为结尾,此时R语言的编译程序会知道下一行是接续此行的。
(2)使用左括号“(”,R语言编译器会知道在下一行出现的片断数据是同一括号内的命令,直至出现右括号")",才代表命令结束。
(3)字符串是指双引号之间的文字字符,在设定字符串时,如果有了第一个双引号,但尚未出现第二个双引号,R语言编辑器可以知道下一行出现的字符是属于同一字符串向量变量的数据,但此时换行符“/n”将被视为字符串的一部分。
二、常见向量对象的数学运算函数
2.1 常见运算
sum():可计算所有元素的和。
max():可计算所有元素的最大值。
min():可计算所有元素的最小值。
mean():可计算所有元素的平均值。
2.2 prod()函数
prod():计算所有元素的积。
2.3 累积运算函数
cumsum():计算所有元素的累积和。
cumprod():计算所有元素的累积积。
cummax():可返回各元素从向量起点到该元素位置所有元素的最大值。
cummin():可返回各元素从向量起点到该元素位置所有元素的最小值。
2.4 差值运算函数
diff():返回各元素与下一个元素的差。
由于是返回每个元素与下一个元素的差值,所以结果向量对象会比原先向量对象少一个元素。
2.5 排序函数
sort(x,decreaing=FALSE):默认是从小排到大,所以如果是从小排到大,则可以省略decreaing参数。如果设定“decreaing=TRUE",则是从大排到小。
rank():传回向量对象,这个向量对象的内容是原向量对象的各元素在原向量对象从小到大排序后,在所得向量对象中的次序。
rev():这个函数可将向量对象颠倒排列。
2.6 计算向量对象长度的函数
length():可计算向量对象的长度,也就是向量对象元素个数。
2.7 基本统计函数
sd():计算样本的标准差。
var():计算样本的方差。
三、Inf、-Inf、NA的向量运算
任何整数或实数值与Inf相加,结果均是Inf。任何整数或实数值与-Inf相加,结果均是-Inf。
如果向量中的向量对象的参数包含NA,则运算结果是NA。
为了克服向量对象可能有缺失值NA的情形,通常在函数内加上”na.rm=TRUE"参数,这样函数碰上有向量对象的参数是NA时,也可以正常运算了。
特别需要注意的是,diff()函数与累计函数cummax()、cummin()相同,无法使用去掉缺失值NA的参数“na.rm=TRUE"。
四、R语言的字符串数据属性
R语言的数据类型:
- integer:整数。
- double:R语言在处理实数运算时,预设是用双精度实数计算和存储。
- character:字符串。
处理字符串向量对象与处理整数向量对象类似,可以使用c(0函数建立字符串向量,应特别留意字符串可以用双引号(" ")也可以用单引号(' ')。
length()函数也可以应用于字符串向量对象,由此了解向量对象的长度(即元素的个数)。
nchar()函数可用于列出字符串向量对象每一个元素的字符串。
五、探索对象的属性
5.1 探索对象元素的属性
在R语言程序设计过程中,可能会有一时无法知道对象属性的情形,这时可以使用下列函数判断对象属性,判断结果如果是真则传回TRUE,否则传回FALSE。
is.integer():对象是否为整数。
is.numeric():对象是否为数字。
is.double():对象是否为双精度实数。
is.character():对象是是否为字符串。
5.2 探索对象的结构
str()函数用于探索对象的结构。对于向量对象而言,可由此了解对象的数据类型、长度和元素内容。
5.3 探索对象的数据类型
对于向量对象而言,可以使用class()函数,了解此对象的数据类型。
需特别留意,如果向量对象内的元素同时包含整数、实数、字符时,若使用class()判别它的数据类型,将返回“character”(字符)。
六、向量对象元素的存取
6.1 使用索引取得向量对象的元素
R语言与C语言不同,它的索引值是从1开始的。
R语言的索引也可以是一个向量对象,这个向量对象可用c()函数建立起来。
我们也可以用已经建立好的向量对象当作索引取代。
6.2 使用负索引挖掘向量对象内的部分元素
我们可以利用索引取得向量对象的元素,也可以利用索引取得向量对象内不含有特定索引所对应的部分元素,方法是使用负索引。
6.3 修改向量对象元素值
当修改向量对象元素数据时,原始数据就没了,所以建议在修改前可以先建立一份备份。
6.4 认识系统内建的数据集letters和LETTERS
以R语言系统内建的数据集letters和LETTERS为例,看看如何取得向量的部分元素或称取子集。
tail()函数的第一个参数数据集的对象名称,第二个参数是预计取得多少元素,如果省略第二个参数,系统自动返回6个元素。head()函数使用方式与tail()函数相同,是返回数据集的最前面的元素。
七、逻辑向量
7.1 基本应用
R语言可以用比较两个值的方式返回逻辑值,如表所示:
表达式 | 说明 |
---|---|
x==y | 如果x等于y,则传回TRUE |
x!=y | 如果x不等于y,则传回TRUE |
x>y | 如果x大于y,则传回TRUE |
x>=y | 如果x大于或等于y,则传回TRUE |
x<y | 如果x小于y,则传回TRUE |
x<=y | 如果x小于或等于y,则传回TRUE |
x&y | 相当于AND运算,如果x和y皆是TRUE则传回TRUE |
x|y | 相当于OR运算,如果X或y是TRUE则传回TRUE |
!x | 相当于NOT运算,则传回非x |
xor(x,y) | 相当于XOR运算,如果x和y不同,则传回TRUE |
which()函数所使用的参数是一个比较表达式,可以列出符合条件的索引值,相当于可以找出向量对象中的哪些元素是符合条件的。
which.max():可列出最大值的第一个索引值。
which.min():可列出最小值的第一个索引值。
7.2 Inf、-Inf和缺失值NA的处理
任何比较,对于NA而言均是返回NA 。
7.3 多组逻辑表达式的应用
7.4 NOT表达式
7.5 逻辑值TRUE和FALSE的运算
R语言和其他高级语言一样,可以将TRUE视为1,将FALSE视为0使用。
any()函数的用法是,只要参数向量对象有1个元素是TRUE,则传回TRUE。
all()函数的用法是,所有参数需是TRUE,才传回TRUE。
八、不同长度向量对象相乘的应用
不同长度的向量对象相乘的原则是,长的向量对象长度是短的向量对象长度的倍数。
九、向量对象的元素名称
9.1 建立简单含元素名称的向量对象
object<-c(name1=data1,name2=data2...)
9.2 names()函数
使用names()函数可以查询向量对象元素的名称,也可更改向量元素的名称。
如果想要删除向量对象的元素名称,只要将其设为NULL即可。