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

R中Dataframe操作:拆分单个订单字符串内数字与字母间的多件商品

问题分析

拆分失败的核心原因是正则断言的匹配顺序写反:你原本的正则匹配的是「字母后紧跟数字」的位置,而实际两个商品的拼接处是「数字后紧跟字母」(比如$6Bread中,数字6后紧跟字母B),因此完全不匹配实际拆分点。

调整后可直接运行的代码
library(tidyverse)

newdf <- df %>%
  separate(V3, 
           into = paste0("Item ", 1:7), # 等价于手动编写7个Item列名
           sep = "(?<=[0-9])(?=[A-Za-z])", # 匹配数字后、字母前的零宽位置作为拆分点
           fill = "right") # 商品数不足7个的行,右侧列自动填充空值
补充说明
  • 如果数据中存在商品名称首字母小写的情况,正则无需调整,[A-Za-z]已经覆盖大小写匹配。
  • 如果后续商品名称中包含数字,可进一步调整正则为(?<=\\$[0-9]+)(?=[A-Za-z]),精准匹配价格结束、商品开始的位置,避免误拆分。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 03:48:01