首页 生信入门 生信入门学习笔记(第2天)-20210601

生信入门学习笔记(第2天)-20210601

生信入门学习笔记(第2天),今天主要学习了对向量的一些操作,由生信技能树的小洁老师主讲,整理如下。 Point 1:向量的生成 :使用冒号可以生成连续的整数,此时不需要使用c();…

生信入门学习笔记(第2天),今天主要学习了对向量的一些操作,由生信技能树的小洁老师主讲,整理如下。

Point 1:向量的生成

:
使用冒号可以生成连续的整数,此时不需要使用c();

> 1:5
[1] 1 2 3 4 5

c()
使用c()生成向量,这是最基本的生成向量的用法,注意两个或两个以上的元素使用c()括起来才能形成向量;
注意向量包含的数据类型相同;

> c(1,2,3)
[1] 1 2 3
> c("a","b","c","d","e")
[1] "a" "b" "c" "d" "e"

rep(),seq(),rnorm()
rep()函数通过将一个元素或向量重复出现若干次生成向量;

> rep(c("a","b"), times = 3)
[1] "a" "b" "a" "b" "a" "b"
> rep(c("a","b"), each = 3)
[1] "a" "a" "a" "b" "b" "b"

seq()函数可生成等差数列,from,to,by可省略,位置对即可;

> seq(from=1, to=11, by=2)
[1]  1  3  5  7  9 11
> seq(1,11,2)
[1]  1  3  5  7  9 11

rnorm()函数可生成随机数;

> rnorm(n=4, mean=0, sd=3)
[1] -0.4717126  1.9006675 -4.0859391  0.7837871

paste0(),paste()
paste0函数和paste()函数均可将两个向量中的元素一一对应连接,但是paste有空格paste0没有,paste也可以通过seq参数设置连接符号;
遵循循环补齐原则,比较短的向量中的元素循环出现去和较长的向量中的元素一一对应连接;

> paste0(c("a","b","c"),c(1,2,3))
[1] "a1" "b2" "c3"
> paste0(c("a","b"),c(1,2,3))
[1] "a1" "b2" "a3"
> paste0(c("a","b","c"),c(1,2,3))
[1] "a1" "b2" "c3"
> paste0("a",c(1,2,3))
[1] "a1" "a2" "a3"
> paste("a",c(1,2,3))
[1] "a 1" "a 2" "a 3"

Point 2:对单个向量进行操作的一些函数

几个非常简单的统计函数
x <- c(1,3,5,1)
#定义了一个名为x的向量  
max(x) #最大值
min(x) #最小值
mean(x) #均值
median(x) #中位数
var(x) #方差
sd(x) #标准差
sum(x) #总和
#我们以前算起来很复杂的东西,在R里面一行代码就搞定了  
几个比较重要的常用的函数

length()函数
这个函数用来计算向量的长度,也就是一个向量中包含了几个元素;

> x <- c(1,3,5,1)
> length(x)
[1] 4

unique()函数
去除重复值,保留第一个出现的值,后面再出现的时候去掉;

> x <- c(1,3,5,1)
> unique(x)
[1] 1 3 5

table()函数
计算一个向量中非重复的值每个出现了几次;

> x <- c(1,3,5,1)
> table(x)
x
1 3 5 
2 1 1 
#输出结果中第一行是变量名称,第二行是去重后的值,第三行是每个值出现了几次

sort()函数
对向量中的数值进行排序,默认是升序排序;
如果想要降序排序,x后面加逗号,点Tab键弹出函数可选的参数,将降序排列的参数设置为T即可;
注意这种Tab键弹出参数选项的方法也可以应用于其他函数;

> x <- c(1,3,5,1)
> sort(x)
[1] 1 1 3 5
> sort(x,decreasing = T)
#没有设置某个参数的时候函数会执行默认的参数
[1] 5 3 1 1

Point 3:如何对向量取子集?

取子集有两种思路,一种是生成与向量等长度的逻辑值,然后取返回值为TRUE的值;
另一种思路是根据位置取子集;
取子集的符号为中括号[];

根据逻辑值取子集
> x <- c(1,3,5,1);x
[1] 1 3 5 1
> x>2 #生成与向量等长的逻辑值
[1] FALSE  TRUE  TRUE FALSE
> x[x>2] #取x>2的元素
[1] 3 5
根据位置取子集
> x <- c("ACTR3B","ANLN","BAG1","BCL2","BIRC5","RAB","ABCT","ANLN","BAD","BCF","BARC7","BALV")
> x[c(1,3,5,7,9,11)]
[1] "ACTR3B" "BAG1"   "BIRC5"  "ABCT"   "BAD"    "BARC7" 
> x[seq(1,11,2)]
[1] "ACTR3B" "BAG1"   "BIRC5"  "ABCT"   "BAD"    "BARC7" 

Point 4:如何修改向量中的元素?

本质上就是先选择某个/某些元素,然后再对这些元素进行赋值;

> x
[1] 1 3 5 6 3
> x[2] <- 11 #修改一个元素
> x
[1]  1 11  5  6  3
> x[c(3,4)] <- c(9,8) #修改多个元素
> x
[1]  1 11  9  8  3

Point 5:如何对向量取交集、并集、差集?

使用intersect(),union(),setdiff()函数;

> x = c(1,3,5,6,3)
> y = c(3,1,5,2,4)
> intersect(x,y)
[1] 1 3 5
> union(x,y)
[1] 1 3 5 6 2 4
> setdiff(x,y) #哪个在前面就取哪个里面特有的元素  
[1] 6
> setdiff(y,x)
[1] 2 4

Point 6:x==y与x%in%y有何不同?

x==y表示比较两个向量对应位置上的元素是否相同,相同则返回TRUE,不同则返回FALSE;
x%in%y表示x中的元素在y中是否存在,不强调位置,只要存在就返回TRUE,返回的逻辑值对应x中的每个元素;

> x = c(1,3,5,6,3)
> y = c(3,1,5,2,4)
> x==y
[1] FALSE FALSE  TRUE FALSE FALSE
> x%in%y
[1]  TRUE  TRUE  TRUE FALSE  TRUE

Point 7:match()函数的使用

match()函数可用于调整向量中元素的顺序,如下所示:

> x <- c("a","b","c","d","e")
> y <- c("c","d","a","e","b")
> match(x,y) #会生成一个索引
[1] 3 5 1 2 4 #表示x中的每一个元素在y中的第几位
> y[match(x,y)] #谁在外面和后面要调整的就是谁,x的位置是模板  
[1] "a" "b" "c" "d" "e"

此函数后续可用于调整数据框中列的顺序,具体可参考小洁老师的这篇文章数据框列的顺序错乱,如何重排

— THE  END —


▉  往期精彩内容推荐

生信入门学习笔记系列

生信入门学习笔记(第1天)-20210531

基础免疫学系列

免疫学拾遗-第15章:T细胞的发育

免疫学拾遗-第14章:B细胞的发育

免疫学拾遗-第13章:免疫系统的器官和组织

免疫学拾遗-第12章:造血功能-血细胞生成

免疫学拾遗-第11章:淋巴细胞活化

免疫学拾遗-第10章:抗原的处理和呈递

免疫学拾遗-第9章:抗原识别研究进展

免疫学拾遗-第8章:主要组织相容性复合物MHC

免疫学拾遗-第7章:T细胞受体(TCR)概述

免疫学拾遗-第6章:抗体多样性

免疫学拾遗-第5章:抗体-抗原相互作用

免疫学拾遗-第4章:抗原和抗体结构

免疫学拾遗-第3章:抗原识别

免疫学拾遗-第2章:免疫系统的基本概念和组成

免疫学拾遗-第1章:免疫系统简介

肿瘤免疫学系列

即将开始,敬请期待!

基础实验技术系列

流式检测细胞总ROS-OncoLab实验室

Annexin V/PI染色检测细胞凋亡-OncoLab实验室

免疫荧光实验-OncoLab实验室

WB操作视频-OncoLab实验室

仪器使用系列

小动物活体光学成像系统操作视频-中西医结合基础研究中心

蔡司LSM800激光共聚焦显微镜操作视频-中西医结合基础研究中心

IN Cell Analyzer2200高内涵细胞成像分析系统操作教程-中西医结合基础研究中心

BD LSR Fortessa流式-中西医结合基础研究中心

文献分享系列

肿瘤代谢重编程与免疫应答

年度巨献:神刊CA发布最新癌症数据:全球1000万人死于癌症,中国占比超3成

HLA-I分子加工和递呈抗原功能受损是免疫检查点抑制剂耐药的重要原因

PD-1/PD-L1阻断剂治疗肿瘤的研究进展与面临的挑战

Immunity:肿瘤免疫治疗的十大挑战

作图投稿选刊系列

GraphPad+AI制作可发表级别的柱状图-OncoLab实验室

如何使用ImageJ进行细胞荧光定量

如何使用Scrivener进行科技论文写作

Mendeley-最好用的文献阅读管理软件,没有之一

如何选择一个合适的杂志进行投稿?

PubMed中如何按影响因子筛选检索结果并显示影响因子及分区?

如何使用EndNote软件插入参考文献(附6813种杂志参考文献格式文件)

健康养生系列

八段锦(视频版+图片版,推荐收藏)



长按上方二维码即可关注本号~



点亮“在看”
让更多人看到!

本篇文章来源于微信公众号:OncoLab

免责声明:文章内容不代表本站立场,本站不对其内容的真实性、完整性、准确性给予任何担保、暗示和承诺,仅供读者参考,文章版权归原作者所有。如本文内容影响到您的合法权益(内容、图片等),请及时联系本站,我们会及时删除处理。

作者: oncolab

没有了

已是最新文章

为您推荐

生信入门学习笔记(第6天)-210607

生信入门学习笔记(第6天),今天主要学习了如何用R语言绘图,主要学习了ggplot2包,由生信技能树小洁老师主讲,这里将...

生信入门学习笔记(第5天)-210605

生信入门学习笔记(第5天),今天主要学习了文件的读写,由生信技能树小洁老师主讲。 Point 1:使用base包中的函数...

生信入门学习笔记(第4天)-210604

生信入门学习笔记(第4天),今天主要学习了R包的安装以及常见的报错。 Point 1:R包安装的三种方法 第1种:ins...

生信入门学习笔记(第3天)-210603

生信入门学习笔记(第3天),今天重点学习了数据框的相关知识和操作,作图要处理的数据绝大多数在数据框,所以数据框非常重要,...

生信入门学习笔记(第1天)-20210531

近期参加了生信技能树举办的生信入门马拉松直播课,本专题主要对所学重点知识以及之前学习过程中忽略的一些点进行记录梳理。今天...

发表回复

返回顶部