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

R语言StringR正则实现市场篮子分析商品提取去重问题

解决方案

核心思路

  • 先通过正则匹配仅作为商品分隔符的逗号:跳过包裹在双引号内部的逗号(这类逗号属于商品名的一部分),拆分得到完整的商品列表
  • 移除商品名首尾的包裹引号后,对单订单内的商品去重

调整后代码

library(tidyverse)

tran_pay4 %>%
  as.data.frame() %>%
  mutate(
    # 拆分不在双引号内的逗号作为商品分隔符
    product_name = str_split(product_name, ',(?=(?:[^"]*"[^"]*")*[^"]*$)'),
    # 移除商品名首尾的包裹引号,单订单内去重
    product_name = map(product_name, ~ str_remove_all(.x, '^"|"$') %>% unique())
  )

说明

  • 正则,(?=(?:[^"]*"[^"]*")*[^"]*$)是CSV格式拆分的通用规则,仅匹配不在双引号包裹范围内的逗号,完美适配商品名自带逗号的场景
  • 如果你的数据集用单引号包裹含逗号的商品,把代码里所有的双引号替换为单引号即可
  • 处理后product_name为列表列,每个元素是对应订单去重后的完整商品列表,可直接用于后续市场篮子分析的事务转换

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 05:06:02