生信技能树2021生信入门线上课笔记,需要结合课程讲解服用
- 逻辑运算多个逻辑条件的连接
与 & 所有条件都要满足true
或 | 其中一个条件满足true
非 !
> !4>5
[1] TRUE
- 数据类型的判断 is
数据类型的转换 as
3.多个数据如何组织?
数据结构
-数据框:约等于表格,不是电脑中真实存在的文件
-向量:一列,每一列数据类型相同,可以有重复值
-矩阵
-列表
4.切换project
先:保存/清空脚本、变量、图片
再:file-open project
5.向量的生成(向量由元素组成的,顺序是向量的属性之一)
-c() 逐一生成,同一数据类型,可以有重复值(数据类型转换的优先顺序)
-连续的数字用冒号:
-函数:重复的用rep(),有规律的用seq(),随机数用rnorm()
-组合:paste0()一对一的连接,循环补齐
6.变量名不用c,是个函数c()
万物皆可赋值
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
length(x) #长度,向量里元素的个数
unique(x) #去重复,只留下每个元素第一次出现的结果
duplicated(x) #对应元素是否重复,重复TRUE,返回结果为逻辑值的函数; !duplicated(x),重复为FALSE
table(x) #重复值统计
sort(x)#排序,默认从小到大排序
sort(x, decreasing = T) #从大到小排序
==#逻辑比较,生成等长的逻辑向量,x和对应位置的y是否相等,一对一;xy长度不一样,循环补齐,短的补齐长的,跟顺序没有关系
!= #是否不相等
x%in% y#x的元素是否存在y中,谁在前面谁就是核心
paste(x,y,sep=":") #一对一连接,:分隔符
intersect(x,y)#交集
union(x,y)#交集,默认去重复
setdiff(x,y)#差集,x中存在,y中不存在;谁在前面谁就是核心
8.循环补齐简化代码
生成sample4,sample8,sample12…sample28
paste0(rep("sample",times=7),
seq(from=4,to=30,by=4))
y = seq(from=8,to=30,by=4)
paste0(rep("sample",times=length(y)),y)
y = seq(from=8,to=30,by=4)
x = rep("sample",times=length(y))
paste0(x,y)
y = seq(from=8,to=30,by=4)
paste0("sample",y)
9.向量筛选的思路
从1000个基因名中选出指定的30个
-把1000个基因名赋值给x
-把30个基因名赋值给y
-x%in%y,返回1000个逻辑值,挑选结果为true的
或者取交集
10.向量筛选
-根据逻辑值进行筛选:
x[x==10]#向量的筛选,取子集,中括号里面单独运行,生成与x等长的逻辑值向量,将true对应的值挑选出来,false丢弃
-根据位置进行筛选:中括号里是X的下标组成的向量
x[c(1,5)]
x[-4]#去掉第四个
x[-(2:4)]