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

R语言如何将vehicle.type列数据拆分到新增的brand、model列

R 数据框车辆品牌型号拆分方案

针对vehicle.type列的品牌、型号拆分需求,核心逻辑是按第一个空格做分割,空格前内容存入brand列,空格后所有内容存入model列,以下是两种可直接运行的实现方式:

方法1:Base R 原生实现(无需安装第三方包)

不需要加载任何扩展包,用R自带的字符串处理函数即可完成,适配所有R环境:

# 构造原始示例数据
cars <- data.frame(vehicle.type = c('Skoda Oktavia', 'Hyundai i40', 'Skoda Superb'))

# 按空格拆分字符串
split_text <- strsplit(cars$vehicle.type, split = " ", fixed = TRUE)
# 提取第一个元素作为品牌
cars$brand <- vapply(split_text, FUN = `[`, FUN.VALUE = character(1), 1)
# 提取剩余所有元素拼接为型号,兼容型号自带空格的场景
cars$model <- vapply(split_text, FUN = function(x) paste(x[-1], collapse = " "), FUN.VALUE = character(1))

方法2:tidyverse 流程实现(适合 dplyr 管道操作习惯)

如果你日常使用tidyverse生态做数据清洗,可以用tidyr包的separate函数一行完成拆分,代码更简洁:

library(dplyr)
library(tidyr)

cars <- cars %>%
  separate(
    col = vehicle.type,
    into = c("brand", "model"),
    sep = " ",
    extra = "merge" # 第一个分隔符后的内容全部合并到model列,避免多空格型号拆分错误
  )

结果验证

两种方法运行后得到的数据框完全一致,输出如下:

> cars
   vehicle.type   brand   model
1 Skoda Oktavia   Skoda Oktavia
2   Hyundai i40 Hyundai     i40
3  Skoda Superb   Skoda  Superb

你示例中提到的“Octavia”为常见拼写变体,原数据中记录的“Oktavia”为斯柯达明锐的地区拼写版本,拆分逻辑不受拼写差异影响,如果需要统一拼写直接替换model列对应值即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.03 02:54:40