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

R使用lubridate的dmy_hms转换SleepDay字符列为DateTime时出现NA问题

问题原因

  • 日期解析顺序不匹配:你使用的dmy_hms()函数是按照「日-月-年」的顺序解析日期字符串,如果你的SleepDay列实际是「月-日-年」的顺序(比如常见的4/12/2016 12:00:00格式代表4月12日而非12月4日),解析逻辑不匹配就会返回NA,这种情况替换为mdy_hms()函数即可。
  • 12小时制标识未适配:如果你的SleepDay列末尾带有AM/PM的12小时制标记,lubridate默认按照24小时制解析,无法识别12小时制标识也会生成NA,需要手动指定格式适配12小时制,示例代码如下:
sleepDay <- mutate(sleepDay, ActivityDate = mdy_hms(SleepDay, format = "%m/%d/%Y %I:%M:%S %p"))
  • 部分值格式异常:如果存在少数字符串缺少年份/时分秒、包含特殊乱码、格式和其他行不统一的情况,也会导致解析失败返回NA,你可以用which(is.na(sleepDay$ActivityDate))定位解析失败的行,查看原始字符串后针对性调整解析规则。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 21:09:02