【问题标题】:Error in xts, as.POSIXct "'order.by' cannot contain 'NA', 'NaN', or 'Inf'"xts 中的错误,as.POSIXct “'order.by' 不能包含 'NA'、'NaN' 或 'Inf'”
【发布时间】:2019-05-12 00:21:51
【问题描述】:

我有一个包含日期列和价格列的 CSV 文件。

我正在尝试将其转换为 xts 格式,以便最终可以使用聚合函数。但是,当我尝试运行以下代码时:

mydata_xts=xts(mydata, order.by=as.POSIXct(mydata$Date, format="%d%/m/%y %H:%M"))

我收到此错误:

Error in xts(mydata, order.by = as.POSIXct(mydata$Date, format = "%d%/m/%y %H:%M"))

'order.by' cannot contain 'NA', 'NaN', or 'Inf'

我确信我的数据没有任何缺失值或无效值。我怀疑问题在于 Excel 格式化时间的方式。

附件是关于我的数据的一些信息。

  head(mydata)
            Date Price
1 1/03/2018 0:30 62.07
2 1/03/2018 1:00 60.35
3 1/03/2018 1:30 57.16
4 1/03/2018 2:00 55.88
5 1/03/2018 2:30 58.19
6 1/03/2018 3:00 60.63

summary(mydata)
                  Date          Price       
     1/03/2018 0:30 :   1   Min.   : 14.46  
     1/03/2018 1:00 :   1   1st Qu.: 61.98  
     1/03/2018 1:30 :   1   Median : 63.77  
     1/03/2018 10:00:   1   Mean   : 66.70  
     1/03/2018 10:30:   1   3rd Qu.: 69.86  
     1/03/2018 11:00:   1   Max.   :136.21  
     (Other)        :1481 

这是我的 Excel/csv 文件:https://imgur.com/a/QofdEZl

【问题讨论】:

    标签: r nan xts na


    【解决方案1】:

    这里有一些随机生成的数据行代码可以帮助您。只需将“db0”替换为从 Excel 导入的数据(从头开始,这次尝试删除 Date 列)

    library(xts) 
    set.seed(97531) 
    db0 <- as.data.frame(matrix(rnorm(1*1000, mean=5, sd=2), ncol=1)) 
    date <- seq(from=as.POSIXct("2011-03-12 0:30", format = "%Y-%m-%d %H:%M"), length.out = nrow(db0), by = "30 min") 
    dbt <- xts(db0, date) 
    # index(dbt) 
    apply.weekly(dbt, FUN = "sum")
    

    【讨论】:

      猜你喜欢
      • 2020-07-24
      • 2019-10-31
      • 1970-01-01
      • 2023-03-05
      • 1970-01-01
      • 2011-11-23
      • 2018-07-03
      • 1970-01-01
      • 2019-04-04
      相关资源
      最近更新 更多