R で spread 関数を使用する方法 (例付き)
TidyrパッケージのSpread()関数を使用すると、キーと値のペアを複数の列に「分散」できます。
この関数は次の基本構文を使用します。
スプレッド (データ、キー値)
金:
- data : データフレームの名前
- key : 値が変数名となる列
- value : キーから作成された新しい変数の下に値が入力される列
次の例は、この関数を実際に使用する方法を示しています。
例 1: 値を 2 つの列に分散する
R に次のデータ フレームがあるとします。
#create data frame df <- data. frame (player= rep (c(' A ', ' B '), each= 4 ), year= rep (c(1, 1, 2, 2), times= 2 ), stat= rep (c(' points ', ' assists '), times= 4 ), amount=c(14, 6, 18, 7, 22, 9, 38, 4)) #view data frame df player year stat amount 1 A 1 points 14 2 A 1 assists 6 3 A 2 points 18 4 A 2 assists 7 5 B 1 points 22 6 B 1 assists 9 7 B 2 points 38 8 B 2 assists 4
Spread()関数を使用して、統計列の値を独自の列に変換できます。
library (tidyr) #spread stat column across multiple columns spread(df, key=stat, value=amount) player year assists points 1 to 1 6 14 2 to 2 7 18 3 B 1 9 22 4 B 2 4 38
例 2: 値を 3 つ以上の列に分散する
R に次のデータ フレームがあるとします。
#create data frame df2 <- data. frame (player= rep (c(' A '), times= 8 ), year= rep (c(1, 2), each= 4 ), stat= rep (c(' points ', ' assists ', ' steals ', ' blocks '), times= 2 ), amount=c(14, 6, 2, 1, 29, 9, 3, 4)) #view data frame df2 player year stat amount 1 A 1 points 14 2 A 1 assists 6 3 A 1 steals 2 4 A 1 blocks 1 5 A 2 points 29 6 A 2 assists 9 7 A 2 steals 3 8 A 2 blocks 4
Spread()関数を使用して、 stat列の 4 つの一意の値を 4 つの新しい列に変換できます。
library (tidyr) #spread stat column across multiple columns spread(df2, key=stat, value=amount) player year assists blocks points steals 1 A 1 6 1 14 2 2 A 2 9 4 29 3
追加リソース
Tidyrパッケージの目標は、次の特徴を持つ「整った」データを作成することです。
- 各列は変数です。
- 各行は観察です。
- 各セルは一意の値です。
Tidyr パッケージは、4 つの主要な関数を使用して順序付けされたデータを作成します。
1. Spread()関数。
2. Gather()関数。
3. Separate()関数。
4.unit ()関数。
この4つの機能を使いこなせば、どんなデータフレームからでも「整った」データを作成できるようになります。