R でピボットテーブルをすばやく作成する方法
Excel では、ピボット テーブルを使用してデータをグループ化し、要約する簡単な方法が提供されます。
たとえば、Excel に次のデータ セットがある場合、ピボット テーブルを使用して、地域ごとの総売上高をすばやく要約できます。
これは次のことを示しています。
- 地域 A の総売上高は 51 件でした
- 地域 B の総売上高は 85 件でした
- 地域 C は合計 140 件の販売を達成
あるいは、地域別の平均売上などの別の指標で要約することもできます。
dplyrパッケージのgroup_by() 関数とsummary()関数を使用すると、同様のピボット テーブルを R ですばやく作成できることがわかりました。
このチュートリアルでは、これを行う方法の例をいくつか示します。
例: R でピボットテーブルを作成する
まず、前の例で Excel から使用したのと同じデータセットを R で作成しましょう。
#create data frame df <- data. frame (region=c('A', 'A', 'A', 'B', 'B', 'B', 'C', 'C', 'C', 'C'), device=c('X', 'X', 'Y', 'X', 'Y', 'Y', 'X', 'X', 'Y', 'Y'), sales=c(12, 18, 21, 22, 34, 29, 38, 36, 34, 32)) #view data frame df region device sales 1AX 12 2AX18 3 AY 21 4 BX22 5 BY 34 6 BY 29 7 CX 38 8CX36 9 CY 34 10 CY 32
次に、dplyr パッケージをロードし、 group_by()関数とsummary()関数を使用して地域ごとにグループ化し、地域ごとの売上の合計を見つけましょう。
library (dplyr) #find sum of sales by region df %>% group_by (region) %>% summarize (sum_sales = sum (sales)) # A tibble: 3 x 2 region sum_sales 1 to 51 2 B 85 3 C 140
これらの数値は、Excel の入門例に示されている数値と一致していることがわかります。
地域ごとの平均売上を計算することもできます。
#find average sales by region df %>% group_by (region) %>% summarize (mean_sales = mean (sales)) # A tibble: 3 x 2 region mean_sales 1 to 17 2 B 28.3 3 C 35
繰り返しますが、これらの数値は、前の Excel の例で示された数値と一致します。
複数の変数でグループ化することもできることに注意してください。たとえば、地域とデバイスの種類ごとにグループ化された売上高の合計を見つけることができます。
#find sum of sales by region and device type df %>% group_by (region, device) %>% summarize (sum_sales = sum (sales)) # A tibble: 6 x 3 # Groups: region [3] region device sum_sales 1AX30 2 AY 21 3 BX22 4 BY 63 5 CX 74 6 CY 66