> -----Original Message-----
> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org]
> On Behalf Of Stephen Liu
> Sent: Saturday, November 06, 2010 7:38 AM
> To: Joshua Wiley
> Cc: r-help@r-project.org
> Subject: Re: [R] About 5.1 Arrays
> 
> Hi Joshua,
> 
> Thanks for your advice.
> 
> 1)
> Re your advice:-[quote]
> > a3d
> , , 1 <--- this is the first position of the third dimension
> 
>      [,1] [,2] [,3] [,4]  <--- positions 1, 2, 3, 4 of the second
> dimension
> [1,]    1    4    7   10
> [2,]    2    5    8   11
> [3,]    3    6    9   12
> ^  the first dimension
> 
> , , 2 <--- the second position of the third dimension
> ...
> [/quote]
> 
> Where is the third dimension?
> 
> 
> 2)
> Re your advice:-[quote]
> so you can think that in the original vector "a":
> 1 maps to a[1, 1, 1] in the 3d array
> 2 maps to a[2, 1, 1].
> 3 maps to a[3, 1, 1]
> 4 maps to a[1, 2, 1]
> 12 maps to a[3, 4, 1]
> 20 maps to a[2, 3, 2]
> 24 maps to a[3, 4, 2]
> [/quote]
> 
> My finding;
> 
> # 1 maps to a[1, 1, 1] in the 3d array
> > a3d <- array(a, dim = c(1, 1, 1))
> > a3d
> , , 1
> 
>      [,1]
> [1,]    1
> 
> Correct
> 
> # 2 maps to a[2, 1, 1].
> > a3d <- array(a, dim = c(2, 1, 1))
> > a3d
> , , 1
> 
>      [,1]
> [1,]    1
> [2,]    2
> 
> Correct
> 
> # 3 maps to a[3, 1, 1]
> > a3d <- array(a, dim = c(3, 1, 1))
> > a3d
> , , 1
> 
>      [,1]
> [1,]    1
> [2,]    2
> [3,]    3
> 
> Correct
> 
> # 4 maps to a[1, 2, 1]
> > a3d <- array(a, dim = c(1, 2, 1))
> > a3d
> , , 1
> 
>      [,1] [,2]
> [1,]    1    2
> 
> Incorrect.  It is "2"
> 
> 
> # 12 maps to a[3, 4, 1]
> > a3d <- array(a, dim = c(3, 4, 1))
> > a3d
> , , 1
> 
>      [,1] [,2] [,3] [,4]
> [1,]    1    4    7   10
> [2,]    2    5    8   11
> [3,]    3    6    9   12
> 
> Correct
> 
> # 20 maps to a[2, 3, 2]
> > a3d <- array(a, dim = c(2, 3, 2))
> > a3d
> , , 1
> 
>      [,1] [,2] [,3]
> [1,]    1    3    5
> [2,]    2    4    6
> 
> , , 2
> 
>      [,1] [,2] [,3]
> [1,]    7    9   11
> [2,]    8   10   12
> 
> Incorrect.  It is "12"
> 
> 
> #  24 maps to a[3, 4, 2]
> > a3d <- array(a, dim = c(3, 4, 2))
> > a3d
> , , 1
> 
>      [,1] [,2] [,3] [,4]
> [1,]    1    4    7   10
> [2,]    2    5    8   11
> [3,]    3    6    9   12
> 
> , , 2
> 
>      [,1] [,2] [,3] [,4]
> [1,]   13   16   19   22
> [2,]   14   17   20   23
> [3,]   15   18   21   24
> 
> Correct.
> 
> If I'm wrong, pls correct me.  Thanks
> 
> 
> B.R.
> Stephen
> 

Stephen,

I am correcting you. :-)  You are using dim() incorrectly, and not accessing 
the array correctly.  In all of your examples you should be using dim(3,4,2).  
Then you need to specify the indexes of the array element you want to look at. 
So, to use your example

> a<-1:24
> a3d <- array(a, dim = c(3,4,2))
> a3d
, , 1

     [,1] [,2] [,3] [,4]
[1,]    1    4    7   10
[2,]    2    5    8   11
[3,]    3    6    9   12

, , 2

     [,1] [,2] [,3] [,4]
[1,]   13   16   19   22
[2,]   14   17   20   23
[3,]   15   18   21   24

> 
> # 1 maps to a[1, 1, 1] in the 3d array
> a3d[1, 1, 1]
[1] 1
> 
> # 2 maps to a[2, 1, 1].
> a3d[2, 1, 1]
[1] 2
> 
> # 3 maps to a[3, 1, 1]
> a3d[3, 1, 1]
[1] 3
> 
> # 4 maps to a[1, 2, 1]
> a3d[1, 2, 1]
[1] 4


Hope this is helpful,

Dan

Daniel Nordlund
Bothell, WA USA
 

______________________________________________
R-help@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.

Reply via email to