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

使用R语言POSIXct拆分日期时间列时时间字段返回NA的求助

解决方法

问题出在你使用as.POSIXct(heartrate$Time, format = '%H:%M:%S')时,format参数需要匹配Time列完整的字符串格式,但你的Time列是包含日期+时间的完整字符串,只指定时间格式的话,R无法解析整个字符串,所以返回NA。

正确的处理步骤如下:

1. 确保Time列被解析为日期时间类型

如果read_csv没有自动将Time列识别为POSIXct类型,先手动转换(根据你数据中Time的实际格式调整format参数,从示例的New_date格式推测,原Time格式类似"4/12/20 00:00:00"):

# 示例格式:MM/DD/YY HH:MM:SS,根据你的实际数据调整
heartrate$Time <- as.POSIXct(heartrate$Time, format = "%m/%d/%y %H:%M:%S")

2. 提取日期和时间

  • 提取日期:你原来的as.Date()写法是正确的
  • 提取HH:MM:SS格式的时间:
    • 若需要字符串类型:用format()函数从POSIXct对象中提取时间部分
    • 若需要专门的时间类型(便于后续时间运算):用hms包转换

代码实现

# 提取日期
heartrate$New_date <- as.Date(heartrate$Time)

# 提取字符串格式的时间(HH:MM:SS)
heartrate$New_time_str <- format(heartrate$Time, "%H:%M:%S")

# 提取时间类型的时间(推荐)
# 先安装hms包(未安装时执行)
# install.packages("hms")
library(hms)
heartrate$New_time <- as_hms(heartrate$Time)

验证结果

处理后的数据示例:

IdTimeValueNew_dateNew_time_strNew_time
20224844082020-04-12 00:00:00972020-04-1200:00:0000:00:00
20224844082020-04-12 00:00:051022020-04-1200:00:0500:00:05

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.04 11:28:06