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