On Sat, Nov 6, 2010 at 7:38 AM, Stephen Liu <sati...@yahoo.com> wrote: > Hi Joshua, > > Thanks for your advice. > > 1) > Re your advice:-[quote] >> a3d > , , 1 <--- this is the first position of the third dimension ***THIS IS 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 ***THIS IS THE THIRD > DIMENSION*** > ... > [/quote] > > Where is the third dimension?
I pointed to the third dimension above. You can think of a 3d array kind of like a journal (I don't know if this is helpful, but I kind of like the analogy so...). Each page holds a two dimensional table, so I could tell you to look at row 4, column 3 on page 16. Nevertheless, at any given point, it is just a flat page. > > 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" No, it is correct. You cannot assume that you may use the same indices to access an array when you have created it with different dimensions. Consider: > array(1:24, dim = c(3, 4, 2))[1, 2, 1] [1] 4 > array(1:24, dim = c(1, 2, 1))[1, 2, 1] [1] 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" See my above comment about not expecting things in the same location when you change the space they live in. Sorry this was so slow in coming, I missed the email somehow. Cheers, Josh [snip] ______________________________________________ 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.