Converting data.frame to xts order.by requires an appropriate time-based object

后端 未结 2 655
你的背包
你的背包 2020-12-28 08:09

I have this 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 2804         


        
2条回答
  •  忘掉有多难
    2020-12-28 09:02

    ?xts says that the following about order.by:

    Currently acceptable classes include: ‘Date’, ‘POSIXct’, ‘timeDate’, as well as ‘yearmon’ and ‘yearqtr’ where the index values remain unique.

    So an extra explicit conversion is required, e.g. to 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))
    

提交回复
热议问题