[R] Frequencies into Poisson responses

Prof Brian Ripley ripley at stats.ox.ac.uk
Thu May 18 08:43:56 CEST 2006

```In fact you have an ftable, not a multi-way table, but as.data.frame works
for multi-way tables, and here as.data.frame(as.table(ftabc)) works:

> as.data.frame(as.table(ftabc))
A B CC Freq
1  1 1  1   20
2  2 1  1   38
3  3 1  1   20
4  1 2  1   22
5  2 2  1   25
6  3 2  1   23
...

It would be more usual to start with a table and use ftable to display it.
It might just be worth adding as.data.frame.ftable.

On Thu, 18 May 2006, Murray Jorgensen wrote:

> Suppose that one has several factors, all of the same length. These
> define a multi-way contingency table. Now suppose one wants to fit a
> Poisson GLM a.k.a. log-linear model to the frequencies in this table.
> How may we make the table into a data frame suitable for glm() ?
> I have an answer to my own question below, but surely more elegant
> solutions exist?
>
> set.seed(060518)
> na <- nb <- 3
> nc <- 4
> n <- na*nb*nc
> a <- round(runif(1000,0.5,na+0.5))
> b <- round(runif(1000,0.5,nb+0.5))
> cc <- round(runif(1000,0.5,nc+0.5))
> A <- factor(a)
> B <- factor(b)
> CC <- factor(cc)
> ftabc <- ftable(A,B,CC)
> freqs <- as.vector(ftabc)
> A1 <- gl(na,nb,n)
> B1 <- gl(nb,1,n)
> C1 <- gl(nc,na*nb,n)
> required <- data.frame(A1,B1,C1,freqs)
> required
>
> Cheers,  Murray Jorgensen
>
>

--
Brian D. Ripley,                  ripley at stats.ox.ac.uk
Professor of Applied Statistics,  http://www.stats.ox.ac.uk/~ripley/
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

```