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 ----- Original Message ---- From: Joshua Wiley <jwiley.ps...@gmail.com> To: Stephen Liu <sati...@yahoo.com> Cc: r-help@r-project.org Sent: Sat, November 6, 2010 12:48:27 AM Subject: Re: [R] About 5.1 Arrays On Fri, Nov 5, 2010 at 9:17 AM, Stephen Liu <sati...@yahoo.com> wrote: > Hi Daniel, > > Thanks for your detail advice. I completely understand your explain. > > But I can't resolve what does "a" stand for there? the "a" just represents some vector. It is the name of the object that stores your data. Like you might tell someone to go look in a book to find some information. > > a[1,1,1] is 1 * 1 * 1 = 1 > a[2,1,1] is 2 * 1 * 1 = 2 > a[2,4,2] is 2 * 4 * 2 = 16 > a[3,4,2] is 3 * 4 * 2 = 24 That is the basic idea, but it may not be the most helpful way to think of it because it depends on the length of the each dimension. For example a[1, 2, 1] is not 1 * 2 * 1 = 2 a[1, 1, 2] is not 1 * 1 * 2 = 2 in the little 3d array I show below, it would actually be a[1, 2, 1] = 4 a[1, 1, 2] = 13 > > ? > > > B.R. > Stephen L > > ----- Original Message ---- > From: Daniel Nordlund <djnordl...@frontier.com> > To: r-help@r-project.org > Sent: Fri, November 5, 2010 11:54:15 PM > Subject: Re: [R] About 5.1 Arrays > >> -----Original Message----- >> From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] >> On Behalf Of Stephen Liu >> Sent: Friday, November 05, 2010 7:57 AM >> To: Steve Lianoglou >> Cc: r-help@r-project.org >> Subject: Re: [R] About 5.1 Arrays >> >> Hi Steve, >> >> > It's not clear what you're having problems understanding. By >> > setting the "dim" attribute of your (1d) vector, you are changing >> > itsdimenensions. >> >> I'm following An Introduction to R to learn R >> >> On >> >> 5.1 Arrays >> http://cran.r-project.org/doc/manuals/R-intro.html#Vectors-and-assignment >> >> >> It mentions:- >> ... >> For example if the dimension vector for an array, say a, is c(3,4,2) then >> there >> are 3 * 4 * 2 = 24 entries in a and the data vector holds them in the >> order >> a[1,1,1], a[2,1,1], ..., a[2,4,2], a[3,4,2]. >> >> >> I don't understand "on .... =24 entries in a and the data vector holds >> them in >> the order a[1,1,1], a[2,1,1], ..., a[2,4,2], a[3,4,2]." the order >> a[1,1,1], >> a[2,1,1], ..., a[2,4,2], a[3,4,2]? What does it mean "the order a[1,1,1], >> a[2,1,1], ..., a[2,4,2], a[3,4,2]"? because it is actually stored as a 1 dimensional vector, it is just telling you the order. For example, given some vector "a" that contains the numbers 1 through 24, you could reshape this into a three dimensional object. It would be stored like: # make a vector "a" and an array (built from "a") called a3d > a <- 1:24 > a3d <- array(a, dim = c(3, 4, 2)) > a [1] 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 > 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 [,1] [,2] [,3] [,4] [1,] 13 16 19 22 [2,] 14 17 20 23 [3,] 15 18 21 24 a[1, 1, 1] is the first element of dimension 1, the first element of dimension 2, and the first element of dimension 3. so 1. a[2, 1, 1] is the *second* element of dimension 1, the first element of dimension 2, and the first element of dimension 3. so 2 a[3, 4, 2] is the third element of dimension 1, the fourth element of dimension 2, and the second element of dimension 3. so 24. 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] >> >> Thanks >> >> B.R. >> Stephen <snip> -- Joshua Wiley Ph.D. Student, Health Psychology University of California, Los Angeles http://www.joshuawiley.com/ ______________________________________________ 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.