R语言基本函数解释R语言基础

R语言match函数

2021-05-30  本文已影响0人  7f0a92cda77c

match函数的基本用法

创建两个向量
MMMM <- c(1,2,3,5,7,20)
NNNN <- c(3,8)
返回值分为两种,一种匹配上的,返回的是被匹配的那个向量对应的位置;另一种是NA值,没有匹配上使用NA值填充
#match (A,B) 其中把A里的元素逐个匹配B中所有元素,如能匹配上,就返回匹配上的元素在B向量的位置;所以返回值长度和A相等
match(MMMM,NNNN)
#[1] NA NA  1 NA NA NA 
#把1和B向量进行匹配,没有-NA;
#把2和B向量匹配,没有-NA;
#把3和B向量进行匹配,是B向量的第一个元素,所以返回值是1,其余同样比较
返回值的向量长度和A相同
match(NNNN,MMMM)
#[1]  3 NA 
#返回的长度和NNNN相同

这个认识重要

如果我们得到了一个表达矩阵,只有ENSEMBLE, 但是做富集分析需要ENTREZID号,怎么进行匹配
第一步-获得包里对应的两个不同ID的转换
options(connectionObserver = NULL)
library(org.Mm.eg.db)
library(clusterProfiler)
library(dplyr)
library(ggplot2)
library(stringr)
library(enrichplot)
id2ENTREZID <- bitr(rownames(VOOM_DESEQ_final_DEG),fromType = "ENSEMBL", toType = "ENTREZID",   OrgDb = org.Mm.eg.db)
#获得这个对应的数据框,并且行名和原来数据框的行名是一样的
id2ENTREZID
第二步-制作一个向量和原来数据框行数相同的向量
ENTREZID <- rep("NA",time = nrow(dat))
#方便操作
dat
第三步-将ENTREZID匹配到原来的数据框
ENTREZID[match(id2ENTREZID[,1],rownames(dat))] <- id2ENTREZID[,2]
#首先是洗白原来的NA值,将id2ENTREZID这个的第一列-ENSEMBLE与原来的数据dat的行名也为ENSEMBLE进行匹配
#返回值是能够匹配到dat行名的位置,把这个位置信息赋予给id2ENTREZID[,2]

把能匹配到的位置都给显示出来

最后一步-合并信息
dat <- cbind(rownames(dat),ENTREZID,dat)
合并后的数据
上一篇下一篇

猜你喜欢

热点阅读