列と行をグループ化するOREdplyr
関数。
表3-4 列と行のグループ化
関数 | 説明 |
---|---|
|
指定された列の |
|
各グループの行数をリストします。 |
|
グループ化列の名前を表示します。 |
|
グループ数を返します。 |
|
入力 |
例3-73 グループ化関数の使用
次の例では、mtcars data.frame
オブジェクトでore.push
関数を使用して作成されるore.frame
オブジェクトMTCARSを使用します。グループ化関数group_by
、group_size
、groups
、n_group
およびungroup
の使用例を示します。また、OREdplyr
関数arrange
、rename
およびsummarize
も使用します。
MTCARS <- ore.push(mtcars) by_cyl <- group_by(MTCARS, cyl) # Apply the summarise function to each group arrange(summarise(by_cyl, mean(disp), mean(hp)), cyl) # Summarise drops one layer of grouping by_vs_am <- group_by(MTCARS, vs, am) by_vs <- summarise(by_vs_am, n = n()) arrange(by_vs, vs, am) arrange(summarise(by_vs, n = sum(n)), vs) # Remove grouping summarise(ungroup(by_vs), n = sum(n)) # Group by expressions with mutate arrange(group_size(group_by(mutate(MTCARS, vsam = vs + am), vsam)), vsam) # Rename the grouping column groups(rename(group_by(MTCARS, vs), vs2 = vs)) # Add more grouping columns groups(group_by(by_cyl, vs, am)) groups(group_by(by_cyl, vs, am, add = TRUE)) # Drop duplicate groups groups(group_by(by_cyl, cyl, cyl)) # Load the magrittr library to use the forward-pipe operator %>% library(magrittr) by_cyl_gear_carb <- MTCARS %>% group_by(cyl, gear, carb) n_groups(by_cyl_gear_carb) arrange(group_size(by_cyl_gear_carb), cyl, gear, carb) by_cyl <- MTCARS %>% group_by(cyl) # Number of groups n_groups(by_cyl) # Size of each group arrange(group_size(by_cyl), cyl)
この例のリスト
R> MTCARS <- ore.push(mtcars) R> by_cyl <- group_by(MTCARS, cyl) R> R> # Apply the summarise function to each group R> arrange(summarise(by_cyl, mean(disp), mean(hp)), cyl) cyl mean.disp. mean.hp. 1 4 105.1364 82.63636 2 6 183.3143 122.28571 3 8 353.1000 209.21429 R> R> # Summarise drops one layer of grouping R> by_vs_am <- group_by(MTCARS, vs, am) R> by_vs <- summarise(by_vs_am, n = n()) R> arrange(by_vs, vs, am) vs am n 1 0 0 12 2 0 1 6 3 1 0 7 4 1 1 7 R> arrange(summarise(by_vs, n = sum(n)), vs) vs n 1 0 18 2 1 14 R> R> # Remove grouping R> summarise(ungroup(by_vs), n = sum(n)) n 32 R> R> # Group by expressions with mutate R> arrange(group_size(group_by(mutate(MTCARS, vsam = vs + am), vsam)), vsam) vsam n 1 0 12 2 1 13 3 2 7 R> R> # Rename the grouping column R> groups(rename(group_by(MTCARS, vs), vs2 = vs)) [1] "vs2" R> R> # Add more grouping columns R> groups(group_by(by_cyl, vs, am)) [[1]] [1] "vs" [[2]] [1] "am" R> groups(group_by(by_cyl, vs, am, add = TRUE)) [[1]] [1] "cyl" [[2]] [1] "vs" [[3]] [1] "am" R> R> # Drop duplicate groups R> groups(group_by(by_cyl, cyl, cyl)) [1] "cyl R> R> # Load the magrittr library to use the forward-pipe operator %>% R> library(magrittr) R> by_cyl_gear_carb <- MTCARS %>% group_by(cyl, gear, carb) R> n_groups(by_cyl_gear_carb) [1] 12 R> arrange(group_size(by_cyl_gear_carb), cyl, gear, carb) cyl gear carb n 1 4 3 1 1 2 4 4 1 4 3 4 4 2 4 4 4 5 2 2 5 6 3 1 2 6 6 4 4 4 7 6 5 6 1 8 8 3 2 4 9 8 3 3 3 10 8 3 4 5 11 8 5 4 1 12 8 5 8 1 R> R> by_cyl <- MTCARS %>% group_by(cyl) R> # Number of groups R> n_groups(by_cyl) [1] 3 R> # Number of groups R> n_groups(by_cyl) [1] 3 R> R> # Size of each group R> arrange(group_size(by_cyl), cyl) cyl n 1 4 11 2 6 7 3 8 14