[R] how to create column names for the matrix

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


I see. But please understand that initializing the values is not the
same as setting the colnames. How providing this almost-impossible-
to-read initialization code helps with respect to your question which
is about setting the colnames?

I know people often asked you to show the code in your previous
questions on this site. They're right: showing the code helps.
But only the code that is relevant to your question. Code that is
not relevant to your question is only distracting and confusing.

H.

On 07/27/2016 11:45 AM, lily li wrote:
> Thanks. I shorten a more complex matrix to this example, but use the
> original structure of the code. The original matrix has all characters
> instead of 1:5.
>
>
> On Wed, Jul 27, 2016 at 12:42 PM, Hervé Pagès <hpages at fredhutch.org
> <mailto:hpages at fredhutch.org>> wrote:
>
>     On 07/27/2016 11:40 AM, Hervé Pagès wrote:
>
>         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="-")
>
>
>     or maybe
>
>       colnames(matrix1) <- paste(rep(1:5, each=length(chars)), chars,
>     sep="-")
>
>     is what you're after.
>
>     H.
>
>
>
>         Cheers,
>         H.
>
>
>                 [[alternative HTML version deleted]]
>
>             ______________________________________________
>             R-help at r-project.org <mailto: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 <mailto:hpages at fredhutch.org>
>     Phone:  (206) 667-5791 <tel:%28206%29%20667-5791>
>     Fax:    (206) 667-1319 <tel:%28206%29%20667-1319>
>
>

-- 
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