R:行名替换

时间:2018-03-18 21:12:00

标签: r

从.txt文件中读取数据框“temp”。行名称是一些基因ID。有一个参考表'grcm38',我可以在其中找到每个基因ID的名称。但是,引用表中不存在一些ID,因此找不到与它们对应的名称。我能做的唯一方法是运行它几次以找出这些ID并明确地从搜索空间中删除它,但在这种情况下我必须一次又一次地读取.txt。必须有一个更聪明的方法。有谁知道吗?这是我的代码。谢谢!

>library(dplyr)
>library(annotables) # mouse is grcm38
>temp <- read.csv(file='data.txt',header=T, row.names=1, sep=',')
>head(grcm38)
# A tibble: 6 x 9
  ensgene  entrez symbol chr    start    end strand biotype description 
  <chr>     <int> <chr>  <chr>  <int>  <int>  <int> <chr>   <chr>       
1 ENSMUSG…  14679 Gnai3  3     1.08e8 1.08e8     -1 protei… guanine nuc…
2 ENSMUSG…  54192 Pbsn   X     7.78e7 7.79e7     -1 protei… probasin [S…
3 ENSMUSG…  12544 Cdc45  16    1.88e7 1.88e7     -1 protei… cell divisi…
4 ENSMUSG…     NA H19    7     1.43e8 1.43e8     -1 lincRNA H19, imprin…
5 ENSMUSG… 107815 Scml2  X     1.61e8 1.61e8      1 protei… sex comb on…
6 ENSMUSG…  11818 Apoh   11    1.08e8 1.08e8      1 protei… apolipoprot…

>for (i in seq(1,length(rownames(temp)))){
  print(i)
  index = which(grcm38$ensgene == rownames(temp)[i])
  if (i == c(540,7124)) {print((paste("Cannot find symbol of ",rownames(temp)[i])))}
  else {rownames(temp)[i] = grcm38$symbol[index]}
}

0 个答案:

没有答案