[R] Add a dim to an array

Petr Savicky savicky at cs.cas.cz
Sun Jun 3 08:39:30 CEST 2012


On Sat, Jun 02, 2012 at 05:17:36PM +0200, Patrick Hausmann wrote:
> Dear list,
> 
> I'm trying to add a new dim to a multidimensional array. My array looks 
> like this
> 
> a1 <- array(1:8, c(2, 2, 2))
> dimnames(a1) <- list(A = c("A1", "A2"),
>                      B = c("B1", "B2"),
>                      D = c("D1", "D2"))
> 
> I would like to add a new dim 'group' with the value "low". Right now 
> I'm using this, but I think are better ways...
> 
> a2 <- as.data.frame(as.table(a1))
> a2$group <- "low"
> a2 <- xtabs(Freq ~ A + B + D + group, data = a2)
> a2

Hi.

Try the following.

  a1 <- array(1:8, c(2, 2, 2))
  dimnames(a1) <- list(A = c("A1", "A2"),
                       B = c("B1", "B2"),
                       D = c("D1", "D2"))
  a2 <- array(a1, c(2, 2, 2, 1))
  dimnames(a2) <- c(dimnames(a1), list(group = "low"))
  a2

  , , D = D1, group = low
  
      B
  A    B1 B2
    A1  1  3
    A2  2  4
  
  , , D = D2, group = low
  
      B
  A    B1 B2
    A1  5  7
    A2  6  8

Hope this helps.

Petr Savicky.



More information about the R-help mailing list