R 如何找到不同年龄组的信用卡持有人百分比

R 如何找到不同年龄组的信用卡持有人百分比,r,analytics,R,Analytics,ACCOUNT表包含客户持有的帐户列表。每种类型的客户可能有多个帐户。表的布局如下所示: CUSTOMER_NUMBER CUSTOMER_AGE ACCOUNT_NUMBER ACCOUNT TYPE 123 27 A987 Home Loan 123 27 B6547 Credit Card 124

ACCOUNT表包含客户持有的帐户列表。每种类型的客户可能有多个帐户。表的布局如下所示:

CUSTOMER_NUMBER CUSTOMER_AGE    ACCOUNT_NUMBER      ACCOUNT TYPE
123             27              A987                Home Loan
123             27              B6547               Credit Card
124             42              B7531               Credit Card
展示您如何确定以下年龄段拥有信用卡的客户比例:18-29岁、30-44岁、45-59岁、60岁以上

输出应如下所示:

Age Band    % with Credit Card
18-29   44.9%
30-44   41.2%
45-59   45.5%
60+ 43.0%
如何获得上表所示的预期结果,以及持有信用卡的不同年龄组的百分比


请在R代码中帮助我。一种可能性是:

df %>%
 group_by(grp = cut(CUSTOMER_AGE,
                  breaks = c(18, 29, 44, 59, Inf),
                  labels = c("18-29", "30-44", "45-59", "60+"),
                  right = FALSE)) %>%
 summarise(res = (length(ACCOUNT_TYPE[ACCOUNT_TYPE == "Credit_Card"])/n()*100))

  grp     res
  <fct> <dbl>
1 18-29    50
2 30-44   100
df%>%
分组依据(grp=切割(客户年龄),
中断=c(18,29,44,59,Inf),
标签=c(“18-29”、“30-44”、“45-59”、“60+”),
右=假))%>%
摘要(res=(长度(账户类型[账户类型==“信用卡”)/n()*100))
玻璃钢
1 18-29    50
2 30-44   100
样本数据:

df <- read.table(text = "CUSTOMER_NUMBER CUSTOMER_AGE    ACCOUNT_NUMBER      ACCOUNT_TYPE
123             27              A987                Home_Loan
                 123             27              B6547               Credit_Card
                 124             42              B7531               Credit_Card", header = TRUE,
                 stringsAsFactors = FALSE)

dfOne
dplyr
可能性可能是:

df %>%
 group_by(grp = cut(CUSTOMER_AGE,
                  breaks = c(18, 29, 44, 59, Inf),
                  labels = c("18-29", "30-44", "45-59", "60+"),
                  right = FALSE)) %>%
 summarise(res = (length(ACCOUNT_TYPE[ACCOUNT_TYPE == "Credit_Card"])/n()*100))

  grp     res
  <fct> <dbl>
1 18-29    50
2 30-44   100
df%>%
分组依据(grp=切割(客户年龄),
中断=c(18,29,44,59,Inf),
标签=c(“18-29”、“30-44”、“45-59”、“60+”),
右=假))%>%
摘要(res=(长度(账户类型[账户类型==“信用卡”)/n()*100))
玻璃钢
1 18-29    50
2 30-44   100
样本数据:

df <- read.table(text = "CUSTOMER_NUMBER CUSTOMER_AGE    ACCOUNT_NUMBER      ACCOUNT_TYPE
123             27              A987                Home_Loan
                 123             27              B6547               Credit_Card
                 124             42              B7531               Credit_Card", header = TRUE,
                 stringsAsFactors = FALSE)
df