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

如何在R中用正则表达式解析OCC期权代码并生成指定格式data.table

OCC期权代码正则解析方案

核心思路

OCC期权代码结构固定,通过正则捕获4个对应字段后做格式转换即可生成目标data.table,不需要额外依赖。

正确实现代码

library(data.table)

# 测试用OCC代码向量
occ_codes <- c("AAPL220121C00145000", "TSLA220121C01050000", "HD220121C00400000")

# 正则捕获4个分组直接生成data.table
dt <- as.data.table(strcapture(
  pattern = "^([A-Za-z]+)(\\d{6})([PC])(\\d{8})$",
  x = occ_codes,
  proto = list(
    Symbol = character(),
    ExpDate = character(),
    Type = character(),
    Strike = character()
  )
))

# 转换为目标格式
dt[, `:=`(
  ExpDate = as.Date(ExpDate, "%y%m%d"),
  Type = fifelse(Type == "C", "call", "put"),
  Strike = as.numeric(Strike)/1000
)]

# 查看结果
print(dt)

输出结果

Symbol    ExpDate Type Strike
1:   AAPL 2022-01-21 call    145
2:   TSLA 2022-01-21 call   1050
3:     HD 2022-01-21 call    400

原代码问题说明

原正则未捕获开头的标的代码分组,字段拆分逻辑错误,且没有做日期、期权类型、行权价的格式转换,因此无法得到正确结果。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 18:45:05