Setting up a 3D matrix in R and accessing certain elements Setting up a 3D matrix in R and accessing certain elements arrays arrays

Setting up a 3D matrix in R and accessing certain elements


Try this:

ar <- array(someData, c(365, 6, 4));  ar[304,5,2] <- 204;

where someData might be

someData <- rep(0, 365*6*4);  

or even better maybe

someData <- rep(NaN, 365*6*4);  


A matrix is a special 2-dimensional case of an array. (Quoting from the help for ?matrix).

So, you need array:

x <- array(rep(1, 365*5*4), dim=c(365, 5, 4))str(x)num [1:365, 1:5, 1:4] 1 1 1 1 1 1 1 1 1 1 ...

Set a specific value:

x[305, 5, 2] <- 204

Print one slice:

x[305, , ]     [,1] [,2] [,3] [,4][1,]    1    1    1    1[2,]    1    1    1    1[3,]    1    1    1    1[4,]    1    1    1    1[5,]    1  204    1    1


Try this simple example (have made the example a fairly small one so it's clear what's going on - I explain below how to tweak it for your precise question!)...

m = array(1:60, dim=c(3,4,5))m[2,1,5][1] 50m[2,1,5] = -50m[2,1,5][1] -50

Type m to see the whole 3d array :)

In your example, you'd set up your initial array as m = array(NA, dim=c(365,6,4)) (this will fill it with NAs to start with - do you have data to fill it up with?) And the assignment is m[304,5,2] = 204, of course :)