[R] how to create column names for the matrix

Hervé Pagès hpages at fredhutch.org
Wed Jul 27 20:40:14 CEST 2016


Hi,

On 07/27/2016 11:17 AM, lily li wrote:
> Hi all,
>
> I want to ask that how to create column names for a matrix. For example,
> the matrix below, the column names should be: 1-A, 1-B, 1-C, 1-D, 2-A, 2-B,
> 2-C, 2-D, 3-A, etc. Thanks for your help.
>
> chars = c('A','B','C','D')
> matrix1 = matrix(nrow = length(1:100), ncol = length(1:5)*length(chars))
> k = 0
> for(i in seq(1:length(1:5))){
>   for(j in seq(1:length(chars))){
>     k = k+1
>     matrix1[,k] = c(1:100)[k]
>   }
> }

Also how could you possibly use such level of code obfuscation to
perform such simple initialization of your matrix?

My 1st advice would be that you slow down and take the time to compare
seq(1:length(1:5)) with 1:length(1:5) with 1:5. It will be a great
learning experience!

As for initializing your matrix, what about doing

   ncol <- 5 * length(chars)
   matrix1 <- matrix(seq_len(ncol), nrow=100, ncol=ncol, byrow=TRUE)

instead?

Then set the colnames with:

   colnames(matrix1) <- paste(rep(1:5, length(chars)), chars, sep="-")

Cheers,
H.

>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>

-- 
Hervé Pagès

Program in Computational Biology
Division of Public Health Sciences
Fred Hutchinson Cancer Research Center
1100 Fairview Ave. N, M1-B514
P.O. Box 19024
Seattle, WA 98109-1024

E-mail: hpages at fredhutch.org
Phone:  (206) 667-5791
Fax:    (206) 667-1319



More information about the R-help mailing list