xts中的错误,因为POSIXct“'order.by'不能包含'NA','NaN'或'Inf'”

时间:2018-12-11 03:19:59

标签: r nan xts na

我有一个带有日期列和价格列的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

1 个答案:

答案 0 :(得分:1)

以下几行代码包含随机生成的数据,可以为您提供帮助。只需将“ db0”替换为从Excel导入的数据即可(从头开始,这次尝试删除“日期”列)

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")