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

R语言:拆分数据单元格,提取字符串指定字符

解决方案:从JSON格式字符串中提取指定数字

核心思路

你的数据是嵌套在JSON结构的字符串里,直接用str_sub或separate会因为引号、冒号的格式干扰报错,推荐用正则匹配精准定位目标数字,结合tidyverse工具处理更高效。

具体代码实现

假设你的数据框为df,存储JSON字符串的列名为json_col,使用stringr包的str_extract函数提取:

library(tidyverse)

# 提取目标数字
df <- df %>%
  mutate(
    # 提取键的前两位数字:匹配引号后的连续两位数字
    prefix = str_extract(json_col, '(?<=")\\d{2}'),
    # 提取冒号后值的最后一位数字
    suffix = str_extract(json_col, '(?<=:)\\d+') %>% str_sub(-1, -1)
  )

代码细节说明

  • (?<=")\\d{2}:通过正向断言跳过引号,直接匹配引号后的两位数字,规避引号干扰
  • (?<=:)\\d+:匹配冒号后的所有数字,再用str_sub(-1,-1)截取最后一位,兼容值为多位数的情况
  • 多行JSON字符串无需额外处理换行符,正则会自动匹配跨行内容

测试结果示例

针对你提供的JSON片段:

{
  "120710103043": 4,
  "160179505004": 10,
  "300930004002": 4
}

处理后生成的新列结果为:

prefixsuffix
124
160
304

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 23:47:11