2010-07-09 9 views
10

Questa è la prima volta che utilizzo un array tridimensionale e ho problemi a denominare la terza dimensione.L'assegnazione di un nome alle dimensioni dell'array restituisce un errore: lunghezza di 'dimnames' diversa dall'estensione dell'array

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

sto ottenendo l'errore:

Length of dimnames not equal to array extent

Questo sembra che dovrebbe essere un problema semplice, ma non riesco a trovare un esempio esplicito nelle Documenti o in linea.

risposta

13

La terza dimensione dell'array è di grado 5, ma il vettore di nomi per quella dimensione è di lunghezza tre.

+0

Grazie. Stavo pensando che la lunghezza del nome dovrebbe corrispondere al numero di dimensioni. – ProbablePattern

+0

Beh, questo è qualcosa che puoi avere anche tu; qualcosa che chiamiamo "nome dimnames". funzione La tabella() in realtà è un importante esempio di utilizzarli: > con (airquality, tavolo (OzHi = Ozone> 80, mese, useNA = "ifany")) mese OzHi 5 6 7 8 9 FALSE 25 9 20 19 27 TRUE 1 0 6 7 2 Si consiglia di utilizzare manualmente la scheda . <- array (1:15, dim = c (3,5), dimnames = elenco (OzHi = c ("FALSE", "TRUE", NA), Month = c ("5", "6", "7", "8", "9"))) per ottenere lo "stesso" [perché sulla terra, non posso ottenere "markdown" per funzionare?] –

7

Dal momento che ho capito meglio risponde con un codice o po' per guidare me ... qui è la risposta corretta di Jonathan Chang tradotto in codice:

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