1. 数据类型
数值型、字符串、逻辑型
★逻辑型数据
①比较运算的结果 >,<,<=,>=,==(判断是否相等),!=(判断是否不相等)。
②逻辑运算
&
:多个条件同时满足则为TRUE, 反之则为FALSE;
|
:只要满足一个条件则为TRUE,都不满足则为TRUE;
!
:TRUE变FALSE,FALSE变TRUE。
③is族函数,判断数据类型;as族函数,转变数据类型
is.numeric()
, is.logical()
, is.character()
as.numeric()
, as.logical()
, as.character()
2. 数据结构
向量、数据框、矩阵、列表
2.1向量
2.1.1向量的生成
①用c()逐一放在一起
优先级遵循(字符型>数值型>逻辑型T1F0)
②连续的数字用
>1:5
1,2,3,4,5
③函数
rep()#重复
seq()#有规律的序列
rnrom()#随机数
④组合
>Paste0(rep("x",times=3),1:3)
X1,X2,X3
2.1.2对单个向量进行操作
①赋值
②简单的数学计算
③根据条件判断,生成逻辑值向量
④初级统计
**Length()** #统计长度,计算元素个数
**Unique()** #去重复,最后的结果是所有的元素只出现一次
**duplicated()**#判断是否重复,生成逻辑值,第一次出现就是FALSE,第二次及以后出现就是TRUE
**table()**#重复值统计
**sort()**#排序,默认从小到大,decreasing改变排序的顺序
2.1.3对两个向量进行操作
①逻辑比较,生成等长的逻辑向量
==
对应位置的元素,如果长度不一致时会再循环一次
循环补齐:谁长谁说了算,短的一方就开始重复,前后顺序颠倒不影响结果
%in%
判断是否存在,前者是否在后者中存在
②数学计算
③连接
paste #有分割,默认是空格
paste0 #无缝连接
paste0(x,y)=paste(x,y,sep="")
④交集、并集、差集(都会去重复)
intersect()#交集
union()#只保留唯一数值的去重复并集
setdiff(x,y)#在x中存在,在y中不存在
setdiff(y,x)#在y中存在,在x中不存在
2.1.4向量筛选,取子集
①按照逻辑值
[]将TRUE值挑出来,FALSE丢弃
x[x==10]
x[x%in%c(9,13)]
②按照位置
x[c(1,5)]#取第1和第5个向量
x[2:4]#取第2-4个向量
x[-4]#舍弃第4个向量
2.1.5修改向量中的某个元素,R语言的修改都要赋值,没有赋值就没有发生过。
补充(http://www.bio-info-trainee.com/1071.html)
①排序
sort(x)是对向量x进行排序,返回值排序后的数值向量。
rank()#依次对向量的最小值,次小值,第三小值,最大值进行索引(位置索引)
order()#对应sort()“排名”的元素所在向量中的位置。
sort(x)等同于x[order(x)]
②集合运算
交集、并集、差集、%in%、match()
%in%
:%in%这个操作符只返回逻辑向量TRUE 或者FALSE,而且返回值应该与%in%这个操作符前面的向量程度相等。也就是说它相当于遍历了C里面的一个个元素,判断它们是否在B中出现过,然后返回是或者否即可。
match()
:返回结果同样与前面的向量等长,但是它并非返回逻辑向量,而是遍历了C里面的一个个元素,判断它们是否在B中出现过,如果出现就返回在B中的索引号,如果没有出现,就返回NA。