The date column needs to be excluded from data input in as.xts(x=
Test Example:
require(PerformanceAnalytics)
data(economics)
colnames(economics)
#[1] "date" "pce" "pop" "psavert" "uempmed" "unemploy"
#Subset your timeseries
economics_sub=economics[,c("date","uempmed")]
#Ensure your date or datetime object is in the correct format
economics_sub$date=as.Date(economics_sub[,1],format="%Y-%m-%d")
#Exclude date column whie reading data in "x ="
economics_xts<-as.xts(x=economics_sub[,"uempmed"],order.by=economics_sub[,"date"])
colnames(economics_xts)=colnames(economics_sub)[-1]
head(economics_xts)
# uempmed
#1967-06-30 4.5
#1967-07-31 4.7
#1967-08-31 4.6
#1967-09-30 4.9
#1967-10-31 4.7
#1967-11-30 4.8
#Plot Series using PerformanceAnalytics function 'chart_Series'
chart_Series(economics_xts)
Your Example:
#Data input
sales1156=read.csv(text='date.time,hsales
"06/01/11 09:00",14.00
"06/01/11 10:00",28.00
"06/01/11 11:00",28.00
"06/01/11 12:00",28.00
"06/01/11 13:00",28.00
"06/01/11 14:00",28.00',header=TRUE)
#Check format of your datetime index
str(sales1156)
#'data.frame': 6 obs. of 2 variables:
# $ date.time: Factor w/ 6 levels " 06/01/11 09:00",..: 1 2 3 4 5 6
# $ hsales : num 14 28 28 28 28 28
#The datetime index has been read as a factor and not as datetime object
#Convert datetime to appropriate format, in this case POSIXct format
sales1156$date.time=as.POSIXct(sales1156$date.time,format="%d/%m/%y %H:%M")
#Check if your formatting has worked as intended
str(sales1156)
#'data.frame': 6 obs. of 2 variables:
# $ date.time: POSIXct, format: "2011-01-06 09:00:00" "2011-01-06 10:00:00" ...
# $ hsales : num 14 28 28 28 28 28
#Converion to xts,exclude date column whie reading data in "x ="
hsales1156xts<-as.xts(x=sales1156[,"hsales"],order.by=sales1156[,"date.time"])
colnames(hsales1156xts)=colnames(sales1156)[-1]
head(hsales1156xts)
# hsales
#2011-01-06 09:00:00 14
#2011-01-06 10:00:00 28
#2011-01-06 11:00:00 28
#2011-01-06 12:00:00 28
#2011-01-06 13:00:00 28
#2011-01-06 14:00:00 28
#Plot Series using PerformanceAnalytics function 'chart_Series'
chart_Series(hsales1156xts)
dput(sales1156)
or if its very large ofdput(head(sales1156))
– G. Grothendieck