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

R语言使用separate函数拆分汽车名称列出现内容错位问题

汽车Name列拆分解决方案

问题原因

原代码使用separate()按空格固定拆分为3列,会将车型内部包含的空格识别为拆分分隔符,导致车型、配置版本列错位。

核心拆分逻辑

符合业务规则的拆分规则为:

  • 第一个空格前的内容为品牌(Make)
  • 最后一个空格后的内容为配置版本(Variant)
  • 两段中间的所有内容(允许包含空格)为车型(Model)

推荐解决方案:使用tidyr::extract()正则匹配拆分

extract()支持按正则分组直接提取对应列,适配可变长度的车型内容,代码如下:

library(tidyverse)

new_data_split = new_working %>%
  extract(
    col = Name,
    into = c("Make", "Model", "Variant"),
    # 正则分组规则:(品牌) 中间任意内容(车型) (配置版本)
    regex = "^(\\S+)\\s+(.*)\\s+(\\S+)$",
    remove = FALSE
  )

边界兼容调整

如果存在部分条目没有配置版本(仅包含品牌+车型),可调整正则为可选匹配,缺失的Variant自动填充为NA:

new_data_split = new_working %>%
  extract(
    col = Name,
    into = c("Make", "Model", "Variant"),
    regex = "^(\\S+)\\s+(.*?)(?:\\s+(\\S+))?$",
    remove = FALSE
  )

效果验证

针对示例Suzuki Wagon R VXL,拆分结果为:

  • Make: Suzuki
  • Model: Wagon R
  • Variant: VXL
    完全符合业务预期。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 22:54:10