2011-11-26 137 views
15

我試圖使用數據集的排序列的索引。我想通過一個排序列對整個數據集進行重新排序。R:無效的下標類型'列表'

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 

回答

16

調用索引進行排序。 return=TRUE返回包含兩個組件的列表:x和ix。用[2]索引返回列表的一個子集 - 仍然是一個列表。

如果使用[[2]]進行索引,它應該會更好。這將返回列表中的元素。 但使用$ ix索引可能會更清晰一些。

但話又說回來,如果你只需要排序的指標,你應該叫order,而不是sort ...

+4

+1提'order',這是他們可能就要。 – joran

+0

令人敬畏,訂單運作良好; 和雙括號工作得很好,謝謝 –

相關問題