2011-11-26 20 views
15

Próbuję użyć indeksów posortowanej kolumny zestawu danych. Chcę zmienić kolejność całego zestawu danych według jednej posortowanej kolumny.R: niepoprawna lista typu indeksu listy podrzędnej

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

Dane wyjściowe są listą, więc nie mogę jej użyć w całym zbiorze danych.

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

Ktoś zasugerował użycie wyświetlać na liście, ale nie mogę pozbyć się ix*. Jakieś pomysły? Dzięki

> 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 

Odpowiedz

16

Wywołanie sortowania za pomocą indeksu. return=TRUE zwraca listę z dwoma komponentami: x i ix. Indeksowanie za pomocą [2] zwraca podzbiór listy - wciąż jest to lista.

Jeśli indeksujesz używając [[2]], powinien on działać lepiej. To zwraca element na liście. Ale indeksowanie za pomocą $ ix jest być może nieco jaśniejsze.

Ale znowu, jeśli trzeba tylko posortowanych indeksów, należy zadzwonić order zamiast sort ...

+4

+1 dla wspomnieć 'order', co jest, co prawdopodobnie chcesz zamiast. – joran

+0

Niesamowite, zamówienie działa dobrze; i podwójne wsporniki również działają dobrze, dzięki –

Powiązane problemy