Rでdata.tableのdcast関数を使用する方法


R のdata.tableパッケージのdcast関数を使用して、データのフレームをロング形式からワイド形式に再形成できます。

この関数は、データ フレーム内の特定の変数を他の変数ごとにグループ化して要約する場合に特に便利です。

次の例は、R の次のデータ フレームでdcast関数を実際に使用する方法を示しています。

 library (data.table)

#create data frame
df <- data. frame (team=c('A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'),
                 position=c('G', 'G', 'F', 'F', 'G', 'G', 'F', 'F'),
                 points=c(18, 13, 10, 12, 16, 25, 24, 31),
                 assists=c(9, 8, 8, 5, 12, 15, 10, 7))

#convert data frame to data table
dt <- setDT(df)

#view data table
dt

   team position points assists
1: AG 18 9
2: AG 13 8
3:AF 10 8
4:AF 12 5
5: BG 16 12
6: BG 25 15
7: BF 24 10
8: BF 31 7

例 1: 他の変数でグループ化された変数のメトリックを計算する

次のコードは、 dcast関数を使用して、チーム変数とポジション変数ごとにグループ化された平均ポイント値を計算する方法を示しています。

 library (data.table)

#calculate mean points value by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = ' points ')

#view results
dt_new

   team position.
1:AF 11.0
2: AG 15.5
3: BF 27.5
4: BG 20.5

例 2:他の変数ごとにグループ化された変数の複数のメトリックを計算する

次のコードは、 dcast関数を使用して、チーム変数ポジション変数ごとにグループ化された平均ポイント値と最大ポイント値を計算する方法を示しています。

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = list(mean, max), 
                value. var = ' points ')

#view results
dt_new

   team position points_mean points_max
1:AF 11.0 12
2: AG 15.5 18
3: BF 27.5 31
4: BG 20.5 25

例 3:他の変数によってグループ化された複数の変数のメトリックを計算する

次のコードは、 dcast関数を使用して、チーム変数とポジション変数ごとにグループ化された平均ポイント値と平均アシスト値を計算する方法を示しています。

 library (data.table)

#calculate mean and max points values by team and position
dt_new <- dcast(dt,
                team + position ~.,
                fun. aggregate = mean, 
                value. var = c(' points ', ' assists '))

#view results
dt_new

   team position points assists
1:AF 11.0 6.5
2: AG 15.5 8.5
3: BF 27.5 8.5
4: BG 20.5 13.5

追加リソース

次のチュートリアルでは、データ テーブルに関する追加情報を提供します。

R の data.table とデータ フレーム: 3 つの主な違い
R で data.table をフィルターする方法
R で rbindlist を使用して複数のデータテーブルを作成する方法

コメントを追加する

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