You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

R语言中如何将退货计数关联到客户ID并计算客户退货率

实现步骤

第一步:基于已生成的returnrate表计算单客户退货率

对已统计好的计数结果按客户ID分组,聚合计算退货率:

library(dplyr)
# 计算每个客户的退货率
customer_return_rate <- returnrate %>%
  group_by(customer_id) %>%
  summarise(
    # 退货次数为returnyesno为1对应的n值,无退货则取0
    return_cnt = sum(ifelse(returnyesno == 1, n, 0)),
    # 总订单次数为该客户所有n值的和
    total_cnt = sum(n),
    # 计算退货率,保留4位小数可按需调整
    return_rate = round(return_cnt / total_cnt, 4)
  ) %>%
  # 可选操作:去掉中间计算列,仅保留客户ID和对应退货率
  select(customer_id, return_rate)

第二步:将退货率关联回原数据集data4

使用左连接保证原数据集所有行都被保留,仅匹配对应客户的退货率:

data4_with_returnrate <- data4 %>%
  left_join(customer_return_rate, by = "customer_id")

如果需要直接修改原data4,直接把结果赋值回data4即可。

简化写法(无需提前生成returnrate表,一步完成统计+关联)

如果不需要单独留存按returnyesno拆分的计数结果,也可以直接从原数据集一步计算,执行效率更高:

data4 <- data4 %>%
  group_by(customer_id) %>%
  mutate(
    return_rate = round(sum(returnyesno == 1) / n(), 4)
  ) %>%
  ungroup()

内容的提问来源于stack exchange,提问作者Estelle

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 15:06:05