[R] Add a dim to an array

Rui Barradas ruipbarradas at sapo.pt
Sun Jun 3 10:19:58 CEST 2012


Hello again,

Sorry, I've misread your post and thought that you wanted the new dim to 
have 'low' and 'high' values.
It's just 'low'. So dim=c(2, 2, 2, 1) and set dn$group to the first 
value only.
And forget the final comments.

Rui Barradas

Em 03-06-2012 07:31, Rui Barradas escreveu:
> Hello,
>
> Try
>
> a3 <- array(dim=c(2, 2, 2, 2))
> dn <- dimnames(a1)
> dn$group <- c("low", "high")
> dimnames(a3) <- dn
> a3[] <- a1  # to use [] keeps the dimensions
> a3          # it fills a3 recycling a1 (two copies)
>
> dim(a2)
> dim(a3)
>
>
> As you can see, 'a2' is not of the right dimensions, and 'a3' has now 
> two copies of 'a1' but it's dimensions are right.
> There are ways of giving dimnames to 'a3' other than creating a new 
> object, 'dn', but this one is a simple one.
>
> Hope this helps,
>
> Rui Barradas
>
> Em 02-06-2012 16:17, Patrick Hausmann escreveu:
>> 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
>>
>> Thanks for any help!
>> Patrick
>>
>> ______________________________________________
>> 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