50

次の形式の2つの列を持つ行列があります。

1 349
1 393
1 392
4 459
3 49
3 32
2 94

このマトリックスを最初の列に基づいて昇順で並べ替えたいのですが、対応する値を2番目の列に保持したいと思います。

出力は次のようになります。

1 349
1 393
1 392
2 94
3 49
3 32
4 459
4

6 に答える 6

52

データを読み取ります。

foo <- read.table(text="1 349
  1 393
  1 392
  4 459
  3 49
  3 32
  2 94")

そして並べ替え:

foo[order(foo$V1),]

orderこれは、が関係を元の順序に保つという事実に依存しています。を参照してください?order

于 2013-01-16T13:40:40.087 に答える
12

data.tablewith を作成すると、key=V1これが自動的に行われます。ステファンのデータの使用foo

> require(data.table)
> foo.dt <- data.table(foo, key="V1")
> foo.dt
   V1  V2
1:  1 349
2:  1 393
3:  1 392
4:  2  94
5:  3  49
6:  3  32
7:  4 459
于 2013-01-16T14:46:20.967 に答える
0

必要ありませんdata.table

これが必要なものですA[order(A[,1]), ]Aはデータの行列です。

于 2018-03-30T08:56:33.187 に答える