利用R实现vlookup
这次内容我们介绍一下如何利用R来实现Excel中vlookup的功能。也就是索引数据,根据基因ID,从一个大的数据中,筛选出与ID匹配的内容。
案例:
现有一个包含200个gene信息的表格,和一个包含121个gene ID的小的表格,根据gene ID,从大的表格中筛选出这121个基因的信息。这些ID可能有重复,可能有些并不包含在大的表格中。
表1:包含200个基因信息的表格(局部)
表2:包含121个基因ID的表格(局部)
利用Excel的vlookup函数实现:
=VLOOKUP($A2,Sheet1!$A$1:$I$201,COLUMN(Sheet1!A2),FALSE)
利用R实现:
#读入200个基因的列表 bigtable
genes200 <- read.csv("data/200genes.csv",header = T,stringsAsFactors = F)
#读入121个基因的list small list
genes121 <- read.csv("data/121genes.csv",header = T,stringsAsFactors = F)
head(genes200)
head(genes121)
genes200["CLU",]
#修改gene table行名
rownames(genes200) <- genes200$gene
genes200["CLU",]
genes200[c("CLU","DCN"),]
#去除重复gene ID
gene93 <- unique(genes121$gene)
#利用数据框的访问功能,一次实现Excel Vlookup功能
dta <- genes200[gene93,]
dta
#数据中包含没有检索到的gene ID,返回值为NA,利用na.omit删除包含NA的行
dta <- na.omit(dta)
rownames(dta) <- 1:nrow(dta)
案例文件及代码下载:
https://pan.baidu.com/s/1hshD5MO
---------- END ----------
绘制manhanttan图