r - Converting data.frame to xts order.by requires an appropriate time-based object -
i have following data frame:
> head(table,10) date open high low close volume adj.close 1 2014-04-11 32.64 33.48 32.15 32.87 28040700 32.87 2 2014-04-10 34.88 34.98 33.09 33.40 33970700 33.40 3 2014-04-09 34.19 35.00 33.95 34.87 21597500 34.87 4 2014-04-08 33.10 34.43 33.02 33.83 35440300 33.83 5 2014-04-07 34.11 34.37 32.53 33.07 47770200 33.07 6 2014-04-04 36.01 36.05 33.83 34.26 41049900 34.26 7 2014-04-03 36.66 36.79 35.51 35.76 16792000 35.76 8 2014-04-02 36.68 36.86 36.56 36.64 14522800 36.64 9 2014-04-01 36.16 36.86 36.15 36.49 15734000 36.49 10 2014-03-31 36.46 36.58 35.73 35.90 15153200 35.90
i trying make xts file using
> table3<-xts(table[,-1],order.by=table$date)
but error:
error in xts(table[, -1], order.by = table$date) : order.by requires appropriate time-based object
where did go wrong? thought table$date organized time-based.
?xts
says following order.by
:
currently acceptable classes include: ‘date’, ‘posixct’, ‘timedate’, ‘yearmon’ , ‘yearqtr’ index values remain unique.
so explicit conversion required, e.g. posixct
:
xts(table[, -1], order.by=as.posixct(table$date)) open high low close volume adj.close 2014-03-31 36.46 36.58 35.73 35.90 15153200 35.90 2014-04-01 36.16 36.86 36.15 36.49 15734000 36.49 2014-04-02 36.68 36.86 36.56 36.64 14522800 36.64 2014-04-03 36.66 36.79 35.51 35.76 16792000 35.76 2014-04-04 36.01 36.05 33.83 34.26 41049900 34.26 2014-04-07 34.11 34.37 32.53 33.07 47770200 33.07 2014-04-08 33.10 34.43 33.02 33.83 35440300 33.83 2014-04-09 34.19 35.00 33.95 34.87 21597500 34.87 2014-04-10 34.88 34.98 33.09 33.40 33970700 33.40 2014-04-11 32.64 33.48 32.15 32.87 28040700 32.87
another option:
xts(table[, -1], order.by=as.date(table$date))
Comments
Post a Comment