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

问题描述 投票:0回答:1

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

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

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个回答
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")
© www.soinside.com 2019 - 2024. All rights reserved.