【问题标题】:i am getting double date and time column after using xts? and getting error 'x' must be a time-series object使用 xts 后我得到双日期和时间列?并且得到错误'x'必须是一个时间序列对象
【发布时间】:2021-12-30 10:49:48
【问题描述】:

我遇到了一个问题。我正在尝试将我的数据转换为 xts 对象,以便稍后我可以合并时间序列并绘制它们。但我得到一个错误'x' must be a time-series object。我将在这里展示一个示例数据。

time<-c("21.11.2021 22:45", "21.11.2021 23:25")
time_p<-as.POSIXct(time, format='%d.%m.%Y %H:%M')
value1<-c(1,9)
value1<-as.numeric(value1)
value2<-c(1,21)
value2<-as.numeric(value2)
time_dataframe<-cbind.data.frame(time_p,value1,value2)
time_dataframe<-xts(time_dataframe,order.by(time_p)

但是当我绘图时,我得到一个错误'x' must be a time-series。

而且我正在输出 2 次日期和时间列,如下所示。

                         time_p            value 1    value 2
2021-11-21 22:45:00  2021-11-21 22:45:00      1          1
2021-11-21 23:25:00  2021-11-21 23:25:00      9          21 

【问题讨论】:

    标签: r time-series xts zoo


    【解决方案1】:

    数据部分不应包含时间。

    library(xts)
    
    time <- c("21.11.2021 22:45", "21.11.2021 23:25")
    time_p <- as.POSIXct(time, format='%d.%m.%Y %H:%M')
    value1 <- c(1, 9)
    value2 <- c(1, 21)
    
    xts(cbind(value1, value2), time_p)
    ##                     value1 value2
    ## 2021-11-21 22:45:00      1      1
    ## 2021-11-21 23:25:00      9     21
    

    DF <-  data.frame(time_p, value1, value2)
    z <- read.zoo(DF)
    as.xts(z)
    # same
    

    【讨论】:

    • 谢谢。它奏效了。
    猜你喜欢
    • 2021-07-14
    • 1970-01-01
    • 2013-04-30
    • 2022-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 1970-01-01
    相关资源
    最近更新 更多