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

在R中如何将数据框内无规律长名称拆分到多个独立列

R实现无固定顺序字段拆分提取的最简方法

因为ColA中各字段没有固定排列顺序,所以不需要按下标拆分字符串,直接基于每个目标字段的固定特征用正则匹配提取即可,全程只需要tidyverse套件里的dplyr和stringr两个工具,几行代码就能完成。

操作步骤

  1. 加载依赖包
library(tidyverse)
  1. 构造示例测试数据(你自己的数据可跳过这一步)
df <- tibble(
  ColA = c("210812_150um_23deg_5sec", "210812_150um_23deg_30sec", "210812_150um_L1_7deg_120sec", "210812_2.5mg_150um_7deg_120sec"),
  ColB = c("3.8 kPa", "2.9 kPa", "5.3 kPa", "6.8 kPa")
)
  1. 核心提取代码
result <- df %>%
  mutate(
    # 匹配6位纯数字的日期
    Date = str_extract(ColA, "\\d{6}"),
    # 匹配带deg后缀的角度值,若存在小数角度可改成`[\\d.]+deg`
    Angle = str_extract(ColA, "\\d+deg"),
    # 匹配带sec后缀的时间值,若存在小数时间可改成`[\\d.]+sec`
    Time = str_extract(ColA, "\\d+sec"),
    # 直接复用原ColB作为Pressure列
    Pressure = ColB
  ) %>%
  # 仅保留需要的目标列
  select(Date, Angle, Time, Pressure)

提示:如果你的字段规则和示例不同,只需要调整str_extract第二个参数的正则表达式匹配规则即可,不需要修改整体逻辑。

输出结果示例

运行后得到的result结构和你要求的完全一致:

# A tibble: 4 × 4
  Date   Angle Time  Pressure
  <chr>  <chr> <chr> <chr>   
1 210812 23deg 5sec  3.8 kPa 
2 210812 23deg 30sec 2.9 kPa 
3 210812 7deg  120sec 5.3 kPa 
4 210812 7deg  120sec 6.8 kPa 

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 08:21:02