xts函数报错:不将POSIXct格式日期识别为合法时间类对象
报错原因
你使用的Date列类属性不完整,标准POSIXct类型的对象的完整类属性为c("POSIXct", "POSIXt"),你提供的示例数据中Date列仅设置了POSIXct单类标签,缺失了必要的父类POSIXt标签,xts的时间索引校验逻辑无法识别该对象为合法时间类型,因此触发报错。
修复方案
方案1:补全Date列的类属性
运行如下代码补全类属性后再创建xts对象即可:
# 补全Date列的标准类属性 class(data_frame$Date) <- c("POSIXct", "POSIXt") # 创建时间序列 time_series <- xts::xts(data_frame$Rainfall, order.by = data_frame$Date)
方案2:创建xts对象时强制转换为标准POSIXct格式
通过as.POSIXct()包裹Date列,转换过程会自动补全缺失的类属性:
time_series <- xts::xts(data_frame$Rainfall, order.by = as.POSIXct(data_frame$Date))
你可以用提供的示例数据直接测试上述方案,运行后即可正常生成xts时间序列对象。
内容的提问来源于stack exchange,提问作者Jay Shamilka
相关产品推荐
相关产品推荐

