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

如何指定separate函数sep参数的正则表达式拆分时间戳为两列?

解决时间戳拆分问题

你的代码存在语法错误:sep = "- "被错误地放在了into参数的向量中,导致into被识别为包含3个元素的向量,同时separate函数使用了默认的分隔规则(匹配所有非字母数字字符),所以才会把时间里的冒号也当作分隔符,出现错误拆分和警告。

正确的代码写法

修正参数位置,将sep作为separate的独立参数,并使用匹配-后跟空格的正则表达式:

library(tidyr)
library(dplyr)

dat <- data.frame(x = c("08:00:00- 10:00:00", "09:00:00- 11:00:00"))
dat %>% 
  separate(col = x, into = c("start_time", "end_time"), sep = "-\\s+")

运行结果

start_time end_time
1   08:00:00 10:00:00
2   09:00:00 11:00:00

说明

  • sep = "-\\s+"是正则表达式,匹配减号后跟一个或多个空格,确保只拆分时间戳之间的分隔符,不会影响时间内部的冒号。
  • 如果你的分隔符固定是- (减号加单个空格),也可以直接用sep = "- ",效果一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 13:23:29