[R] About 5.1 Arrays
Stephen Liu
satimis at yahoo.com
Fri Nov 5 15:56:36 CET 2010
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]"?
Thanks
B.R.
Stephen
----- Original Message ----
From: Steve Lianoglou <mailinglist.honeypot at gmail.com>
To: Stephen Liu <satimis at yahoo.com>
Cc: Gerrit Eichner <Gerrit.Eichner at math.uni-giessen.de>; r-help at r-project.org
Sent: Fri, November 5, 2010 10:18:18 PM
Subject: Re: [R] About 5.1 Arrays
Hi,
On Fri, Nov 5, 2010 at 6:00 AM, Stephen Liu <satimis at yahoo.com> wrote:
[snip]
>> A[i, j, k] is the value of the element in position (i,j,k) of array A. In
>> other words, it is the entry in row i, column j, and "layer" k (if one
>> wants to think of A as a cuboidal grid).
>
> Sorry I can't follow. Could you pls explain in more detail.
>
> e.g.
>
>> z <- 0:23
>> dim(z) <- c(3,4,2)
>> dim(z)
> [1] 3 4 2
>
>
>> z
> , , 1
>
> [,1] [,2] [,3] [,4]
> [1,] 0 3 6 9
> [2,] 1 4 7 10
> [3,] 2 5 8 11
>
> , , 2
>
> [,1] [,2] [,3] [,4]
> [1,] 12 15 18 21
> [2,] 13 16 19 22
> [3,] 14 17 20 23
It's not clear what you're having problems understanding. By setting
the "dim" attribute of your (1d) vector, you are changing its
dimenensions.
## This is a 1d vector
R> x <- 1:12
R> x
## I can change it into 2d (like a matrix), let's do 2 rows, 6 columns
R> dim(x) <- c(2,6)
R> [,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 3 5 7 9 11
[2,] 2 4 6 8 10 12
If you understand that using three numbers to set the dimension means
you are making a 3d matrix
R> dim(x) <- c(2,3,2)
But the problem is you can't draw 3d in a terminal, so it just draws
the third dimension in order
R> x
x
, , 1
[,1] [,2] [,3]
[1,] 1 3 5
[2,] 2 4 6
, , 2
[,1] [,2] [,3]
[1,] 7 9 11
[2,] 8 10 12
###
Imagine this as a cube: ,,1 is the front layer, ,,2 is the back layer.
Just chew on it for a minute, it'll make sense.
--
Steve Lianoglou
Graduate Student: Computational Systems Biology
| Memorial Sloan-Kettering Cancer Center
| Weill Medical College of Cornell University
Contact Info: http://cbio.mskcc.org/~lianos/contact
More information about the R-help
mailing list