Setting up a 3D matrix in R and accessing certain elements
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 :)