哈喽,我是学习生物信息学的阿榜!非常感谢您能够点击进来查看我的笔记。我致力于通过笔记,将生物信息学知识分享给更多的人。如果有任何纰漏或谬误,欢迎指正。让我们一起加油,一起学习进步鸭?
这份思维导图可以让大家更容易地了解笔记里面的内容哦:
一、数据类型
①、数据类型分为三种:数值型、字符型、逻辑型
②、如果我们想要查看数据类型,我们可以使用class()函数:
③、数据类型判断和转换,如图所示:
大家可以动手试一试
④、我给大家再介绍下逻辑值数据运算符:
:大于、<:小于、<=:小于等于、>=:大于等于、==:是否等于、!=:不等于
大家可以根据下面图片试一试:
二、向量的生成:
向量生成有四种方法(不需要死记硬背,多操作几次即可),如下面代码所展示:
#####2.1.向量生成
#(1)用 c() 结合到一起
c(2,5,6,2,9)
c("a","f","md","b")
#(2)连续的数字用冒号“:”
1:5
#(3)有重复的用rep(),有规律的序列用seq(),随机数用rnorm()
rep("x",times = 3)
seq(from = 3,to = 21,by = 3)
rnorm(n = 3)
#(4)通过组合,产生更为复杂的向量。
paste0(rep("x",times = 3),1:3)
注意:①、c()生成一组向量,故不可以用c作为变量名,以免与c()产生误解
②、通过这幅图片理解paste0()函数的原理:
提个小问题:大家知道paste0和paste有什么区别/联系吗?大家仔细阅读文章哦,等会大家就知道答案了
三、对一个向量进行操作:
①、向量赋值输出:
小技巧:规范的赋值符号 Alt+减号相当于=,有两种“赋值+输出一起实现”方式
#####2.2对单个向量进行的操作####
#(1)赋值给一个变量名
x = c(1,3,5,1) #随意的写法
x
x <- c(1,3,5,1) #规范的赋值符号 Alt+减号
x
#赋值+输出一起实现
x <- c(1,3,5,1);x
(x <- c(1,3,5,1))
②、向量简单计算:大家复制代码试试吧,看看会出现什么结果
#(2)简单数学计算
x+1
log(x)
sqrt(x)
③、赋值的x进行判断:
#(3)根据某条件进行判断,生成逻辑型向量
x>3
x==3
④、这是一些常见的函数,大家可以多实践操作几次就熟练了,不用死记硬背哦
#(4)初级统计
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
length(x) #长度
unique(x) #去重复
duplicated(x) #对应元素是否重复
table(x) #重复值统计
sort(x)
sort(x,decreasing = F)
sort(x,decreasing = T)
如图所示:
提个小问题:大家知道为什么输出结果是这样?
答案是R语言里面的默认思想:R语言里面默认sort()函数中的decreasing=FALSE,我们可以手动改成decreasing=TRUE,如图所示:
小技巧:我们以后可以用?+函数名查看帮助文档,这相当于我们会查R语言字典了
四、对两个向量进行操作
①、比较运算:
#####2.3.对两个向量进行的操作#####
x = c(1,3,5,1)
y = c(3,2,5,6)
#(1)比较运算,生成等长的逻辑向量
x == y
y == x
②、两个向量的数学计算
#(2)数学计算
x + y
③、向量的链接
#(3)连接
paste(x,y,sep=",")
下面的图片是输出结果:大家发现了什么?对了!“paste0和paste有什么区别/联系吗?”问题的答案出现了!大家再观察下,后面我给大家详细解释:
④、paste与paste0的区别
#paste与paste0的区别
paste(x,y)
paste0(x,y)
paste(x,y,sep = "")
paste(x,y,sep = ",")
详细解释来啦:二者的区别在于: paste使用分隔符分隔每个字符串(变量),默认使用空格分隔符。而paste0则是直接将多个字符串(变量)拼接成一个字符串,没有分隔符。paste可以类比成绅士,默认懂得保持距离;paste0类比于渣男,喜欢无缝衔接。
两者的联系:当我们需要把几个字符串(或者变量)拼接成一个字符串时,可以使用R语言中的paste和paste0函数来完成,两者的区别在于是否使用分隔符。
⑤、循环补齐
#当两个向量长度不一致
x = c(1,3,5,6,2)
y = c(3,2,5)
x == y
提个小问题:x有五个元素,y有三个元素,两者的长度不相等,为什么最后输出了5个值?
答案是:它们发生了循环补齐,如下图所示:
图片上的问题答案是几呢?聪明的你知道选B吧
小技巧:掌握了这个技巧,以后我们能更好的理解代码了
#利用循环补齐简化代码
paste0(rep("x",3),1:3)
paste0("x",1:3)
⑥、交集、并集、差集
#(4)交集、并集、差集
intersect(x,y)#交集
union(x,y)#并集
setdiff(x,y)###以x为主体,y进行参照,输出x的剩余部分
setdiff(y,x) ###以y为主体,x进行参照,输出y的剩余部分
x %in% y #x的每个元素在y中存在吗?
y %in% x #y的每个元素在x中存在吗?
注意:x %in% y #x的每个元素在y中存在吗?即以x为主体,检验x的每个元素在y中存在吗?
y %in% x #y的每个元素在x中存在吗?即以y为主体,检验y的每个元素在x中存在吗?
提一个小问题:x==y与x%in%y有区别吗?
大家观察下面的图片,发现了什么?
答案:对的,x==y是一一对应的,x%in%y是x遍历y的所有元素
今天学习了这么多知识,大家收获满满吧。下面这张记忆卡片帮助大家记忆:
大家再坚持坚持哦,还有几个知识点就结束了?
五、向量筛选(取子集)
#####2.4.向量筛选(取子集)#####
x <- 8:12
#根据逻辑值取子集
x[x == 10]
x[x < 12]
x[x %in% c(9,13)]
#根据位置取子集
x[4]
x[2:4]
x[c(1,5)]
x[-4]
x[-(2:4)]
①、根据逻辑值取子集
②、根据位置取子集
金句来了哦,大家多看看理解它:
六、向量的修改
####2.5.修改向量中的某个/某些元素:取子集+赋值
x
#改一个元素
x[4] <- 40
x
#改多个元素
x[c(1,5)] <- c(80,20)
x
提一个问题:为什么最后一个x的第四位是40而不是11?
我送大家一句名言:
答案自在其中,赋值了
七、简单向量作图
#### 2.6 简单向量作图
k1 = rnorm(12);k1
k2 = rep(c("a","b","c","d"),each = 3);k2
plot(k1)
boxplot(k1~k2)
提一个问题:boxplot()是什么意思?大家比较下上面两个图就知道意思了,或者百度吧?
好的,以上是我这次在学习生物信息学过程中所整理的笔记。如果在笔记中有错误或者不足之处,欢迎大家指正,我们一起加油鸭?
引用自生信技能树——小洁老师
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。