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

追加リソース

R で VLOOKUP (Excel に似た) を実行する方法
完全ガイド: R でデータをグループ化して要約する方法

コメントを追加する

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