2011-11-26 14 views
15

データセットのソートされた列のインデックスを使用しようとしています。 1つのソートされた列でデータセット全体を並べ替える必要があります。R:無効な添字タイプ 'list'

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 

答えて

16

インデックスでソートする呼び出し。 return=TRUEは、xとixという2つのコンポーネントを含むリストを返します。 [2]で索引付けすると、リストのサブセットが返されます。

[[2]]を使用してインデックスを作成すると効果的です。これは、リスト内の要素を返します。 $ ixを使用したインデックス作成は、おそらく少しはっきりしています。その後、

しかし、あなたは唯一のソートインデックスが必要な場合は、再び、あなたは彼らはおそらく代わりに何をしたいです `order`を、言及するためorderの代わりsort ...

+4

1を呼び出す必要があります。 – joran

+0

素晴らしいですが、注文はうまくいきます。 と二重括弧もうまくいきます –

関連する問題