R: недопустимый тип индекса "список"

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

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

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

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

Кто-то предложил использовать список, но я не могу избавиться от 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

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

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

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

Ответ 2

В большинстве случаев такая ошибка вызвана неправильным написанием имени переменной. Проверьте это.