# [R] Computting statistics on a matrix with 2 factor column

Gavin Simpson gavin.simpson at ucl.ac.uk
Tue Jun 8 16:00:12 CEST 2004

```Marc Mamin wrote:
> Hello,
>
> I suppose this is a basic question but couldn't find a solution.:
>
> I have a large matrix with let say 3 columns:
>
> V1	V2	V3
> a	x	2
> a	x	4
> a	y	8
> b	z	16
>
> and I want to compute some statistics based on
> the levels resulting form the combination of the two first columns
>
> e.g.:
>
> SUM->
>
> V1	V2	V3
> a	x	6
> a	y	8
> b	z	16
>
>
> Thanks for your hints .
>
> Marc
>

?tapply and ?aggregate are two ways, with aggregate giving you something
that more closely resembles what you asked for:

> a <- factor(c("a","a","a","b"))
> b <- factor(c("x","x","y","x"))
> c <- c(2,4,8,16)
> abc <- data.frame(a, b, c)
> abc
a b  c
1 a x  2
2 a x  4
3 a y  8
4 b x 16
> tapply(abc\$c, list(abc\$a, abc\$b), sum)
x  y
a  6  8
b 16 NA
> aggregate(abc\$c, list(abc\$a, abc\$b), sum)
Group.1 Group.2  x
1       a       x  6
2       b       x 16
3       a       y  8

HTH

Gavin

--
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
Gavin Simpson                     [T] +44 (0)20 7679 5522
ENSIS Research Fellow             [F] +44 (0)20 7679 7565
ENSIS Ltd. & ECRC                 [E] gavin.simpson at ucl.ac.uk
UCL Department of Geography       [W] http://www.ucl.ac.uk/~ucfagls/cv/
26 Bedford Way                    [W] http://www.ucl.ac.uk/~ucfagls/
London.  WC1H 0AP.
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%

```