R语言xts包创建时间序列时无法识别POSIXct类型日期报错求助
问题原因
你提供的Date列类属性仅包含POSIXct,缺少R时间对象默认附带的POSIXt继承类,xts包在校验时间参数合法性时要求POSIXct对象同时具备这两个类属性,因此触发报错。
你可以运行以下代码验证该问题:
class(head_data_frame$Date)
当前输出为"POSIXct",而标准POSIXct对象的输出应为c("POSIXct", "POSIXt")。
修复方案
方案1:直接补全Date列的类属性
library(xts) # 补全时间列的类属性 head_data_frame$Date <- structure(head_data_frame$Date, class = c("POSIXct", "POSIXt")) # 创建xts时间序列 time_series <- xts(head_data_frame$Rainfall, order.by = head_data_frame$Date)
方案2:用标准转换函数重置时间类(更稳妥,可同时处理隐藏的格式问题)
library(xts) # 用as.POSIXct自动补全标准类属性 head_data_frame$Date <- as.POSIXct(head_data_frame$Date) # 创建xts时间序列 time_series <- xts(head_data_frame$Rainfall, order.by = head_data_frame$Date)
修复后运行head(time_series)即可看到正常生成的时间序列结果。
内容的提问来源于stack exchange,提问作者Jay Shamilka
相关产品推荐
相关产品推荐

