[R] table function in a matrix
Petr Savicky
savicky at cs.cas.cz
Thu Jun 7 12:12:00 CEST 2012
On Wed, Jun 06, 2012 at 11:02:46PM -0700, Sarah Auburn wrote:
> Hi,
> I am trying to get a summary of the counts of different variables for each sample in a matrix of the form "m" below to generate an output as shown. (Ultimately I want to generate a stacked barchart for each sample). I am only able to get the "table" function to work on one sample (column) at a time. Any help appreciated.
> Thank you
> Sarah
> ?
> a<-c("A", "A", "B", "B", "C", "A", "C", "D", "A", "D", "C", "A", "D", "C", "A", "C")
> m<-matrix(a, nrow=4)
> m
> ???? [,1] [,2] [,3] [,4]
> [1,] "A"? "C"? "A"? "D"
> [2,] "A"? "A"? "D"? "C"
> [3,] "B"? "C"? "C"? "A"
> [4,] "B"? "D"? "A"? "C"
>
> output needed (so that I can use the "barplot(t(output))" function):
> A B C D
> [,1] 2 2 0 0
> [,2] 1 0 2 1
> [,3] 2 0 1 1
> [,4] 1 0 2 1
Hi.
Try the following.
a<-c("A", "A", "B", "B", "C", "A", "C", "D", "A", "D", "C", "A", "D", "C", "A", "C")
m<-matrix(a, nrow=4)
tab <- function(x) { table(factor(x, levels=LETTERS[1:4])) }
t(apply(m, 2, tab))
A B C D
[1,] 2 2 0 0
[2,] 1 0 2 1
[3,] 2 0 1 1
[4,] 1 0 2 1
Factors are used to ensure that all the tables have the same length,
even if some letters are missing.
Hope this helps.
Petr Savicky.
More information about the R-help
mailing list