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
В большинстве случаев такая ошибка вызвана неправильным написанием имени переменной. Проверьте это.