前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >阿榜的生信笔记2

阿榜的生信笔记2

原创
作者头像
用户10480134
修改2023-05-04 23:36:54
3610
修改2023-05-04 23:36:54
举报
文章被收录于专栏:黄金榜黄金榜

哈喽,我是学习生物信息学的阿榜!非常感谢您能够点击进来查看我的笔记。我致力于通过笔记,将生物信息学知识分享给更多的人。如果有任何纰漏或谬误,欢迎指正。让我们一起加油,一起学习进步鸭?

这份思维导图可以让大家更容易地了解笔记里面的内容哦:

一、数据类型

①、数据类型分为三种:数值型、字符型、逻辑型

②、如果我们想要查看数据类型,我们可以使用class()函数:

③、数据类型判断和转换,如图所示:

大家可以动手试一试

④、我给大家再介绍下逻辑值数据运算符:

:大于、<:小于、<=:小于等于、>=:大于等于、==:是否等于、!=:不等于

大家可以根据下面图片试一试:

二、向量的生成:

向量生成有四种方法(不需要死记硬背,多操作几次即可),如下面代码所展示:

代码语言:text
复制
#####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+减号相当于=,有两种“赋值+输出一起实现”方式

代码语言:text
复制
#####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))

②、向量简单计算:大家复制代码试试吧,看看会出现什么结果

代码语言:text
复制
#(2)简单数学计算
x+1
log(x)
sqrt(x)

③、赋值的x进行判断:

代码语言:text
复制
#(3)根据某条件进行判断,生成逻辑型向量
x>3
x==3

④、这是一些常见的函数,大家可以多实践操作几次就熟练了,不用死记硬背哦 

代码语言:text
复制
#(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语言字典了

四、对两个向量进行操作

①、比较运算:

代码语言:text
复制
#####2.3.对两个向量进行的操作#####
x = c(1,3,5,1)
y = c(3,2,5,6)
#(1)比较运算,生成等长的逻辑向量
x == y 
y == x

②、两个向量的数学计算

代码语言:text
复制
#(2)数学计算
x + y

③、向量的链接

代码语言:text
复制
#(3)连接
paste(x,y,sep=",")

下面的图片是输出结果:大家发现了什么?对了!“paste0和paste有什么区别/联系吗?”问题的答案出现了!大家再观察下,后面我给大家详细解释:

④、paste与paste0的区别

代码语言:text
复制
#paste与paste0的区别
paste(x,y)

paste0(x,y)
paste(x,y,sep = "")

paste(x,y,sep = ",")

详细解释来啦:二者的区别在于: paste使用分隔符分隔每个字符串(变量),默认使用空格分隔符。而paste0则是直接将多个字符串(变量)拼接成一个字符串,没有分隔符。paste可以类比成绅士,默认懂得保持距离;paste0类比于渣男,喜欢无缝衔接。

两者的联系:当我们需要把几个字符串(或者变量)拼接成一个字符串时,可以使用R语言中的paste和paste0函数来完成,两者的区别在于是否使用分隔符。

⑤、循环补齐

代码语言:text
复制
#当两个向量长度不一致
x = c(1,3,5,6,2)
y = c(3,2,5)
x == y 

提个小问题:x有五个元素,y有三个元素,两者的长度不相等,为什么最后输出了5个值?

答案是:它们发生了循环补齐,如下图所示:

图片上的问题答案是几呢?聪明的你知道选B吧

小技巧:掌握了这个技巧,以后我们能更好的理解代码了

代码语言:text
复制
#利用循环补齐简化代码
paste0(rep("x",3),1:3)
paste0("x",1:3)
代码语言:text
复制
⑥、交集、并集、差集
#(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的所有元素

今天学习了这么多知识,大家收获满满吧。下面这张记忆卡片帮助大家记忆:

大家再坚持坚持哦,还有几个知识点就结束了?

五、向量筛选(取子集)

代码语言:text
复制
#####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)]

①、根据逻辑值取子集

②、根据位置取子集

金句来了哦,大家多看看理解它:

六、向量的修改

代码语言:text
复制
####2.5.修改向量中的某个/某些元素:取子集+赋值
x
#改一个元素
x[4] <- 40
x
#改多个元素
x[c(1,5)] <- c(80,20)
x

提一个问题:为什么最后一个x的第四位是40而不是11?

我送大家一句名言:

答案自在其中,赋值了

七、简单向量作图

代码语言:text
复制
#### 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 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云原生分布式云中心
云原生分布式云中心(Tencent Kubernetes Engine Distributed Cloud Center, TDCC)是面向多云多集群场景的应用管理平台,支持将云原生化的应用扩展到分布式云,全局视角统一管理和运维分布式云资源,轻松地将您的业务发布至全球,一次部署处处运行。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档