Do not post to the list in html and always copy your message to the list so others can follow the discussion.
That should not matter if the possible values in a row are only 0, 1, 2 as you indicated. No matter how large the matrix is, the table should only have three columns. If more values are possible you need to modify the colnames() statement accordingly. David From: Lida Zeighami [mailto:lid.z...@gmail.com] Sent: Friday, June 26, 2015 2:36 PM To: David L Carlson Subject: Re: [R] question David, Thank you so much for your help. just when I inter this line : > colnames(tbl) <- paste0("fre", 0:2) it gets "Error in `colnames<-`(`*tmp*`, value = c("fre0", "fre1", "fre2")) : length of 'dimnames' [2] not equal to array extent" I think it because of my matrix is 5718*25761 the name of rows is in this format: A00002......A00045..... and my colnames are in this format: 1:866453 ........ 21:878632 so would you please let me know what is the reason of my error and how can I correct it? Thanks again, Lida On Fri, Jun 26, 2015 at 2:19 PM, David L Carlson <dcarl...@tamu.edu> wrote: Don't use html formatting in your emails and use dput() to provide data. Assuming your matrix is called mat: > mat <- structure(c(0L, 1L, 2L, 1L, 0L, 1L, 1L, 1L, 1L, 2L, 1L, 1L, 1L, 0L, 1L, 0L, 2L, 0L, 0L, 1L, 2L, 0L, 0L, 0L, 2L, 2L, 0L, 0L, 2L, 2L, 2L, 2L, 2L, 2L, 2L), .Dim = c(5L, 7L), .Dimnames = list(c("A", "B", "C", "D", "E"), c("1", "2", "3", "4", "5", "6", "7"))) > mat 1 2 3 4 5 6 7 A 0 1 1 0 2 2 2 B 1 1 1 2 0 0 2 C 2 1 1 0 0 0 2 D 1 1 0 0 0 2 2 E 0 2 1 1 2 2 2 > tbl <- t(apply(mat, 1, table)) > colnames(tbl) <- paste0("fre", 0:2) > tbl fre0 fre1 fre2 A 2 2 3 B 2 3 2 C 3 2 2 D 3 2 2 E 1 2 4 > matbl <- cbind(mat, tbl) > matbl 1 2 3 4 5 6 7 fre0 fre1 fre2 A 0 1 1 0 2 2 2 2 2 3 B 1 1 1 2 0 0 2 2 3 2 C 2 1 1 0 0 0 2 3 2 2 D 1 1 0 0 0 2 2 3 2 2 E 0 2 1 1 2 2 2 1 2 4 ------------------------------------- David L Carlson Department of Anthropology Texas A&M University College Station, TX 77840-4352 -----Original Message----- From: R-help [mailto:r-help-boun...@r-project.org] On Behalf Of Lida Zeighami Sent: Friday, June 26, 2015 1:11 PM To: r-help@r-project.org Subject: [R] question Hi there, I have a matrix (n*m) which rows including 0,1,2 I want to know the frequency of each elements (0 , 1 , 2) separately for each row! for example : 1 2 3 4 5 6 7 A 0 1 1 0 2 2 2 B 1 1 1 2 0 0 2 C 2 1 1 0 0 0 2 D 1 1 0 0 0 2 2 E 0 2 1 1 2 2 2 I want to this output: 1 2 3 4 5 6 7 fr0 fr1 fr2 A 0 1 1 0 2 2 2 2 2 3 B 1 1 1 2 0 0 2 3 2 2 C 2 1 1 0 0 0 2 3 2 2 D 1 1 0 0 0 2 2 2 3 2 E 0 2 1 1 2 2 2 1 2 4 Thanks [[alternative HTML version deleted]] ______________________________________________ R-help@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. ______________________________________________ R-help@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.