The (obvious, after the fact) solution at the bottom. D'oh...

On 1/30/2015 2:07 PM, Evan Cooch wrote:
Suppose I have the following situation:

I have an array of 2 matrices, where each matrix is (2x2):

P <- array(0, c(2,2,2))

P[,,1] <- matrix(c(1,2,3,4),2,2,byrow=T);
P[,,2] <- matrix(c(5,6,7,8),2,2,byrow=T);

I want to label rows and columns of each matrix in the array, such that P would look like


        live dead
live      1    2
dead      3    4

, , 2

        live  dead
 live     5    6
 dead     7    8

I've tried 'direct, brute force" approaches like

rownames(P[,,1]) <- c("live","dead")
colnames(P[,,1]) <- c("live","dead")

(repeated for the second matrix), but this doesn't work.

Since all of the matrices are of the same dimension(s), and since I want the same rownames and colnames for each matrix, I'm hoping there is some simply magical permutation of lapply (I'm guessing) which will do the trick.

Forgot I was dealing with a multi-dimensional array, not a list. So, following works fine. I'm sure there are better approaches (where 'better' is either 'cooler', or 'more flexible'), but for the moment...)

P <- array(0, c(2,2,2),dimnames=list(c("live","dead"),c("old","young"),NULL))

P[,,1] <- matrix(c(1,2,3,4),2,2,byrow=T);
P[,,2] <- matrix(c(5,6,7,8),2,2,byrow=T);

print(P);

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
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.

Reply via email to