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つの機能を使いこなせば、どんなデータフレームからでも「整った」データを作成できるようになります。

コメントを追加する

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