[R] Summarizing each row into a frequency table

Gabor Grothendieck ggrothendieck at gmail.com
Tue Mar 24 03:36:43 CET 2009


Try this (haven't checked the speed):

f <- function(x) table(factor(x, c(-1, 0, 1)))
100 * prop.table(t(apply(m, 1, f)), 1)


On Mon, Mar 23, 2009 at 8:46 PM, Daren Tan <darentan76 at gmail.com> wrote:
> I have a matrix containing -1, 0, 1, however certain rows will not
> have all 3 numbers. I have written some codes to compute the frequency
> table of how many -1s, 0s, 1s per row, but it is very ugly and not
> efficient if there are more than 3 numbers. Please suggest.
>
> m <- rbind(sample(0:1, replace=T, 10), sample(-1:1, replace=T, 10))
> m.table <- t(apply(m, 1, function(x) c(sum(x==-1, na.rm=T), sum(x==0,
> na.rm=T), sum(x==1, na.rm=T)) ))
> m.table <- prop.table(m.table, 1)*100
> colnames(m.table) <- -1:1
>
> ______________________________________________
> R-help at r-project.org mailing list
> 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.
>




More information about the R-help mailing list