web-dev-qa-db-fra.com

R: type d'indice non valide 'liste'

J'essaie d'utiliser les indices d'une colonne triée d'un ensemble de données. Je souhaite réorganiser l'ensemble de données complet par une colonne triée.

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

La sortie est une liste, donc je ne peux pas l'utiliser index dans l'ensemble de données.

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

Quelqu'un a suggéré d'utiliser l'annulation, mais je ne peux pas me débarrasser du ix*. Des idées? Merci

> 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 
16
Peter Becich

L'appel pour trier avec index .return=TRUE renvoie une liste avec deux composants: x et ix. L'indexation avec [2] renvoie un sous-ensemble de la liste - toujours une liste.

Si vous indexez en utilisant [[2]] cela devrait fonctionner mieux. Cela renvoie l'élément dans la liste. Mais l'indexation à l'aide de $ ix est peut-être un peu plus claire.

Mais là encore, si vous n'avez besoin que des index triés, vous devez appeler order au lieu de sort...

16
Tommy