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

R语言使用separate拆分日期时间列时如何保留AM/PM?

解决方案

你的问题出在separate函数默认按所有空格拆分,而你的时间字符串包含三个空格分隔的部分(日期、时间、AM/PM),但你只指定了两个输出列,默认extra="drop"会丢弃多余的部分,导致AM/PM丢失。可以通过以下两种方法解决:

方法一:用正则表达式精准拆分

使用正向断言匹配日期末尾的空格,确保只拆分一次,保留时间和AM/PM为整体:

hourlyCalories_merged %>%
  separate(ActivityHour, c("ActivityDay", "ActivityHour_sep"), sep="(?<=\\d{4}) ")

(?<=\\d{4}) 表示匹配四位数字(即日期中的年份)后面的空格,这样拆分后ActivityHour_sep会完整保留HH:00:00 A/PM。

方法二:设置extra="merge"参数

让separate把多余的拆分部分合并到最后一列:

hourlyCalories_merged %>%
  separate(ActivityHour, c("ActivityDay", "ActivityHour_sep"), sep=" ", extra="merge")

extra="merge" 会将拆分出的第三部分(AM/PM)合并到ActivityHour_sep中,避免丢失信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:19:56