繁体   English   中英

按区域然后按自定义组汇总事件

[英]Summarize occurrences by area and then by custom groups

我有以下数据集,它采用 2 列数据集并根据规定的 CustomerAge 创建年龄组类别。

    library(tidyverse)
    
    df <- 
      read.table(textConnection("Area   CustomerAge
    A 28 
    A 40
    A 70
    A 19
    B 13
    B 12
    B 72
    B 90"), header=TRUE)
    

df2 <- df %>% 
  mutate(
    # Create categories
    Customer_Age_Group = dplyr::case_when(
      CustomerAge <= 18            ~ "0-18",
      CustomerAge > 18 & CustomerAge <= 60 ~ "19-60",
      CustomerAge > 60             ~ ">60"
    ))

我希望实现的是 output 摘要,如下所示:

区域 客户_年龄_组 出现次数
一种 0-18岁 0
一种 19-59 3个
一种 >60 1个
0-18岁 2个
19-59 0
>60 2个

要包括 0 次出现,您需要count()ungroup()complete()

df2 %>% group_by(Area, Customer_Age_Group,.drop = FALSE) %>% 
count() %>% 
ungroup() %>% 
complete(Area, Customer_Age_Group, fill=list(n=0))

这也将显示 0 次出现。

要按区域和年龄组排序:

df2 %>% group_by(Area, Customer_Age_Group,.drop = FALSE) %>% 
count() %>% 
ungroup() %>% 
complete(Area, Customer_Age_Group, fill=list(n=0)) %>% 
arrange(Area, parse_number(Customer_Age_Group))

group_bysummarise是你要找的。

df2 %>% group_by(Area, Customer_Age_Group) %>% summarise(Occurences = n())

但是请注意,这不会显示数据集中出现次数为零的类别。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM