R で複数の列で並べ替える方法 (例あり)


次のいずれかの方法を使用して、R の複数の列にわたってデータ フレームを並べ替えることができます。

方法 1: Base R を使用する

 df[order(-df$column1, df$column2), ]

方法 2: dplyr を使用する

 library (dplyr)

df %>%
  arrange( desc (column1), column2)

次の例は、次のデータ フレームで各メソッドを実際に使用する方法を示しています。

 #create data frame
df <- data. frame (team=c('A', 'B', 'C', 'D', 'E', 'F', 'G'),
                 points=c(90, 90, 93, 91, 91, 99, 85),
                 assists=c(33, 28, 31, 39, 34, 40, 44))

#view data frame
df

  team points assists
1 A 90 33
2 B 90 28
3 C 93 31
4 D 91 39
5 E 91 34
6 F 99 40
7 G 85 44

方法 1: Base R を使用する

次のコードは、R ベースのデータ ブロックをポイントの降順 (最大から最小の順) で並べ替えてから、アシストの昇順で並べ替える方法を示しています。

 #sort by points descending, then by assists ascending
df[order(-df$points, df$assists), ]

  team points assists
6 F 99 40
3 C 93 31
5 E 91 34
4 D 91 39
2 B 90 28
1 A 90 33
7 G 85 44

データ フレーム内の行は、ポイントによって最大から最小に順序付けされ、次にアシストによって最小から最大に順序付けされることに注意してください。

方法 2: dplyr を使用する

次のコードは、 dplyrパッケージの関数を使用して、ポイントの降順 (最大から最小) に続いて、 Assistの昇順でデータ フレームを並べ替える方法を示しています。

 library (dplyr)

df %>%
  arrange( desc (dots), assists)

  team points assists
1 F 99 40
2 C 93 31
3 E 91 34
4 D 91 39
5 B 90 28
6 A 90 33
7 G 85 44

ここでも、データ フレーム内の行は、ポイントによって最大から最小の順に並べられ、次にアシストによって最小から最大の順に並べられます。

arrange()関数の完全なドキュメントはここで見つけることができます。

追加リソース

次のチュートリアルでは、R で他の一般的な並べ替え操作を実行する方法について説明します。

Rで値をアルファベット順に並べ替える方法
R でデータフレームを日付で並べ替える方法

コメントを追加する

メールアドレスが公開されることはありません。 が付いている欄は必須項目です