Iam using R version 2.15 in a linux operating system. I have a matrix consisting of the gene ids and their specific signal intensity values as follows( a subset of the whole matrix) : probes GSM362180 GSM362181 GSM362188 GSM362189 GSM362192 244901 5.094871713 4.626623079 4.554272515 4.748604391 4.759221647 244902 5.194528083 4.985930299 4.817426064 5.151654407 4.838741605 244903 5.412329253 5.352970877 5.06250609 5.305709079 8.365082403 244904 5.529220594 5.28134657 5.467445095 5.62968933 5.458388909 244905 5.024052699 4.714631878 4.792865831 4.843975286 4.657188246 244906 5.786557533 5.242403911 5.060605782 5.458148567 5.890061836 I would like to extract only the first column as follows : ids <- scr[,2] and then I got a factor[2368] And then I proceeded to the annotation as follows: biocLite("GO.db") library("AnnotationDbi") biocLite("org.At.tair.db") biocLite("ath1121501.db"). genenames <- org.At.tairGENENAME[ids] #map the probe ids to the gene names in TAIR The output of which is AnnDbBiMap[1] number<-org.At.tairENTREZID[ids] #map the probe ids to the gene ids in TAIR The output of which is AnnDbBiMap[1] And then I try to merge both the lists as : xx<-toTable(entrez) yy<-toTable(number) complete<-merge(xx,yy) I get an error in this step and unable to proceed further.The error reads: Error in fix.by(by.y.y): 'by' must specify uniquely valid column(s) Is it because ids <- scr[,1] is a factor ? How would it be possible to extract it as : ids<- c("244901", "244902", "244903",......) I cannot do the above manually because its a large matrix. -- output of sessionInfo(): R version 2.15 Linux. -- View this message in context: http://r.789695.n4.nabble.com/Annotation-using-org-At-tair-db-package-in-R-tp4648711.html Sent from the R help mailing list archive at Nabble.com.