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

使用Lubridate的dmy_hms与mutate转换日期时遇尺寸不匹配错误如何解决?

问题修复方案及原因解析

错误原因

  1. 字段名不匹配:数据表中的日期字段是datetime,但你代码里用了Transaction_datetime作为输入,导致函数无法定位到正确的列,引发长度不匹配问题。
  2. 解析函数选错:原始日期格式是YYYY-MM-DD HH:MM:SS(年-月-日 时分秒),而dmy_hms()是专门用于解析DD-MM-YYYY HH:MM:SS(日-月-年 时分秒)格式的函数,用错函数会导致解析失败。
  3. Format参数错误:你指定的%y-%m-%d是两位年份格式(如21-01-01),但原始数据是四位年份(2021),格式不匹配会干扰解析逻辑。

修复后的代码

直接使用匹配格式的解析函数,并引用正确的字段名:

transactions_ts %>% 
  mutate(Transaction_datetime = ymd_hms(datetime))

如果需要显式指定格式(其实ymd_hms()可自动识别标准格式,此步骤非必需):

transactions_ts %>% 
  mutate(Transaction_datetime = ymd_hms(datetime, format = "%Y-%m-%d %H:%M:%S"))

验证说明

运行修复后的代码后,Transaction_datetime会被转换为POSIXct类型的日期变量,符合异常检测建模的时间序列数据要求。你可以用class(transactions_ts$Transaction_datetime)查看类型,确认转换成功。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.16 05:20:29