2010-07-09 82 views
10

Esta es la primera vez que uso una matriz tridimensional y tengo problemas para nombrar la tercera dimensión.Nombrar dimensiones de matriz da error: la longitud de 'dimnames' no es igual a la extensión de matriz

ReplicateData <- array(0, c(240, 500, 5), dimnames=list(NULL, NULL, c("Returns", "Replicates", "Asset Class"))) 

estoy consiguiendo el error:

Length of dimnames not equal to array extent

esto parece que debería ser una cuestión sencilla, pero no puedo encontrar un ejemplo explícito en los documentos de ayuda o en línea.

Respuesta

13

La tercera dimensión de su matriz es de extensión 5, pero el vector de nombres para esa dimensión es de longitud tres.

+0

Gracias. Estaba pensando que la longitud del nombre debe coincidir con el número de dimensiones. – ProbablePattern

+0

Bueno, eso es algo que también puedes tener; algo que llamamos "dimnames nombrados". función la tabla() en realidad es un ejemplo importante de usarlos: > con (airquality, mesa (OzHi = Ozone> 80, Mes, useNA = "ifany")) Mes OzHi 5 6 7 8 9 FALSO 25 9 20 19 27 TRUE 1 0 6 7 2 Utilizará manualmente algo como la ficha . <- array (1:15, dim = c (3,5), dimnames = lista (OzHi = c ("FALSE", "TRUE", NA), Mes = c ("5", "6", "7", "8", "9"))) para obtener el "mismo" [¿por qué en la tierra, no puedo obtener "markdown" para trabajar?] –

7

Desde entiendo respuestas mejor con un 'código o poco que me guíe ... aquí es la respuesta correcta de Jonathan Chang traducido a código:

ReplicateData <- array(0,c(240,500,5),dimnames=list(NULL, NULL, 
    c("Returns","Replicates","Asset Class", "Fourth Dimname", "Fifth Dimname"))) 
Cuestiones relacionadas