R: недопустимый тип индекса «список» - PullRequest
16 голосов
/ 26 ноября 2011

Я пытаюсь использовать индексы отсортированного столбца набора данных.Я хочу переупорядочить весь набор данных по одному отсортированному столбцу.

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

Вывод представляет собой список, поэтому я не могу использовать его для индексирования по всему набору данных.

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

Кто-топредложил использовать unlist, но я не могу избавиться от ix*.Есть идеи?Спасибо

> 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 

1 Ответ

16 голосов
/ 26 ноября 2011

Вызов для сортировки с индексом. return=TRUE возвращает список с двумя компонентами: x и ix.Индексирование с помощью [2] возвращает подмножество списка - все еще список.

Если вы индексируете с помощью [[2]], оно должно работать лучше.Это возвращает элемент в списке.Но индексация с использованием $ ix, возможно, немного понятнее.

Но опять же, если вам нужны только отсортированные индексы, вы должны вызвать order вместо sort ...

...