2011-11-26 19 views
15

Sto tentando di utilizzare gli indici di una colonna ordinata di un set di dati. Voglio riordinare l'intero set di dati con una colonna ordinata.R: tipo di indice non valido 'elenco'

area.sort<-sort(xsample$area1, index.return=TRUE)[2] 

L'uscita è un elenco, quindi non può utilizzare indice attraverso l'intero set di dati.

Error in xj[i] : invalid subscript type 'list' 

Qualcuno ha suggerito di utilizzare non elencati, ma non può liberarsi del ix*. Qualche idea? Grazie

> area.sort<-unlist(area.sort) 

ix1 ix2 ix3 ix4 ix5 ix6 ix7 ix8 ix9 ix10 ix11 ix12 ix13 
    45 96 92 80 53 54 24 21 63 81 40 66 64 

risposta

16

La chiamata a ordinare con indice. return=TRUE restituisce una lista con due componenti: x e ix. L'indicizzazione con [2] restituisce un sottoinsieme dell'elenco - ancora una lista.

Se si indice con [[2]], dovrebbe funzionare meglio. Ciò restituisce l'elemento nell'elenco. Ma l'indicizzazione con $ ix è forse un po 'più chiara.

Ma poi di nuovo, se avete solo bisogno gli indici ordinati, si dovrebbe chiamare order invece di sort ...

+4

+1 Per menzionare 'order', che è quello che probabilmente vogliono invece. – joran

+0

Impressionante, l'ordine funziona bene; e anche le doppie staffe funzionano bene, grazie –

Problemi correlati