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

R语言按文本模式拆分服饰属性列 提取Size/Colors/Sold By字段

R语言混合属性列拆分方案

针对服饰属性列存在字段缺失、连接符(冒号/短横线)混用的场景,直接用stringr的正则匹配即可实现稳定拆分,不需要复杂的循环或长段逻辑。

核心匹配规则

完全贴合需求设计提取逻辑,自动兼容格式差异:

  • Size列:仅提取Size标识后的2位尺码编码,无Size字段的行自动返回NA
  • Colors列:提取Colours标识后到下一个逗号前的完整颜色值,自动去除前后多余空格
  • Sold By列:提取Sold By标识后到第一个逗号前的完整销售方名称,自动去除前后多余空格

可直接运行的代码

# 加载依赖包,未安装可先运行 install.packages(c("dplyr","stringr"))
library(dplyr)
library(stringr)

# 构造样例测试数据
df <- data.frame(
  raw_attr = c(
    "Size:AS - Adult Small, Colours: Black , Sold By: Elmwood",
    "Size:YS - Youth Small, Colours: Black, Sold By: Rosemary Brown PS",
    "Colours - Black, Sold By: Rosemary Brown PS"
  )
)

# 执行拆分
df_result <- df %>%
  mutate(
    Size = str_extract(raw_attr, "(?<=Size\\s*[:\\-]\\s*)[A-Z]{2}"),
    Colors = str_extract(raw_attr, "(?<=Colours\\s*[:\\-]\\s*).*?(?=\\s*,)") %>% str_trim(),
    Sold_By = str_extract(raw_attr, "(?<=Sold By\\s*[:\\-]\\s*).*$") %>%
      str_remove(",.*$") %>%
      str_trim()
  )

运行结果

拆分后输出结果完全符合预期:

SizeColorsSold_By
ASBlackElmwood
YSBlackRosemary Brown PS
NABlackRosemary Brown PS

适配说明

  • 正则已兼容字段名与连接符、连接符与字段值之间存在任意数量空格的情况,同时支持冒号、短横线两种连接符
  • 如果实际数据中尺码编码不是2位大写字母,可调整Size提取规则中[A-Z]{2}部分的匹配逻辑即可
  • 若后续字段顺序调整,当前正则依然可以正常匹配,不需要修改代码逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 02:27:30