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

R调用tidyr::extract()拆分列出现regex及sep参数报错该如何解决

错误原因
  • 参数名误用:tidyr::extract() 用于匹配分组的参数为regex,而非sep,sep是同包separate()函数的参数,你传入的sep参数被识别为未使用的无效参数,同时因为未传入有效的regex参数,函数无法识别到匹配分组,因此触发双报错。
  • 列名不匹配:你读取的Excel列名为State,代码中传入的列名写为States,多了末尾的s,参数修正后仍会因找不到对应列触发报错。
  • 正则匹配范围不全:部分美国州名包含空格(例如New York、New Jersey),你原本写的[a-zA-Z]+仅能匹配单个无空格的单词,遇到多单词州名时会出现截断,匹配结果不符合预期。
修正后代码
library(readxl)
library(tidyr)
library(dplyr)

df <- read_xlsx("States.xlsx")
# 正则规则:匹配两位数字为第一组,剩余所有字符为第二组作为州名
df %>% extract(State, c("编号", "州名"), regex = "(\\d{2}) (.*)")

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:57:03