Hi, I would like to add a prefix to colnames in a matrix but I can't get the prefix option in colnames to work. What am I doing wrong?> X<-matrix(NA,3,4) > colnames(X)<-c("test","test","test","test") > colnames(X)<-colnames(X,prefix="PREFIX.") > Xtest test test test [1,] NA NA NA NA [2,] NA NA NA NA [3,] NA NA NA NA ?? I also tried with do.NULL set to FALSE but it still does not work. Thank you very much for your help! Best, Jens
On 7/20/2005 9:54 AM, jhainm at fas.harvard.edu wrote:> Hi, > > I would like to add a prefix to colnames in a matrix but I can't get the prefix > option in colnames to work. What am I doing wrong?The prefix argument is only used when there are no names and colnames is generating some. You just want to use paste().> >> X<-matrix(NA,3,4) >> colnames(X)<-c("test","test","test","test")> colnames(X) <- paste("PREFIX.", colnames(X), sep="") > X PREFIX.test PREFIX.test PREFIX.test PREFIX.test [1,] NA NA NA NA [2,] NA NA NA NA [3,] NA NA NA NA Duncan Murdoch
jhainm at fas.harvard.edu writes:> Hi, > > I would like to add a prefix to colnames in a matrix but I can't get the prefix > option in colnames to work. What am I doing wrong? > > > X<-matrix(NA,3,4) > > colnames(X)<-c("test","test","test","test") > > colnames(X)<-colnames(X,prefix="PREFIX.") > > X > test test test test > [1,] NA NA NA NA > [2,] NA NA NA NA > [3,] NA NA NA NA > > ?? I also tried with do.NULL set to FALSE but it still does not work. > > Thank you very much for your help!Well> colnamesfunction (x, do.NULL = TRUE, prefix = "col") { dn <- dimnames(x) if (!is.null(dn[[2]])) dn[[2]] else { if (do.NULL) NULL else paste(prefix, seq(length = NCOL(x)), sep = "") } } So if x has colnames that's what you get, irrespective of "prefix". -- O__ ---- Peter Dalgaard ??ster Farimagsgade 5, Entr.B c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K (*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918 ~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
On Wed, 20 Jul 2005 jhainm at fas.harvard.edu wrote:> > Hi, > > I would like to add a prefix to colnames in a matrix but I can't get the prefix > option in colnames to work. What am I doing wrong? > >> X<-matrix(NA,3,4) >> colnames(X)<-c("test","test","test","test") >> colnames(X)<-colnames(X,prefix="PREFIX.") >> X > test test test test > [1,] NA NA NA NA > [2,] NA NA NA NA > [3,] NA NA NA NA > > ?? I also tried with do.NULL set to FALSE but it still does not work.The help page is your friend here: do.NULL: logical. Should this create names if they are 'NULL'? prefix: for created names. If 'do.NULL' is 'FALSE', a character vector (of length 'NROW(x)' or 'NCOL(x)') is returned in any case, prepending 'prefix' to simple numbers, if there are no dimnames or the corresponding ^^^^^^^^^^^^^^^^^^^^^^^^ component of the dimnames is 'NULL'. so> X < -matrix(NA,3,4) > colnames(X,prefix="PREFIX.", do.NULL=FALSE)[1] "PREFIX.1" "PREFIX.2" "PREFIX.3" "PREFIX.4" works as documented. -- Brian D. Ripley, ripley at stats.ox.ac.uk Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/ University of Oxford, Tel: +44 1865 272861 (self) 1 South Parks Road, +44 1865 272866 (PA) Oxford OX1 3TG, UK Fax: +44 1865 272595