Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Convert tibble to xts for analysis with performanceanalytics package

I have a tibble with a date and return column, that looks as follows:

> head(return_series)
# A tibble: 6 x 2
  date      return
  <chr>      <dbl>
1 2002-01  0.0292 
2 2002-02  0.0439 
3 2002-03  0.0240 
4 2002-04  0.00585
5 2002-05 -0.0169 
6 2002-06 -0.0686 

I first add the day to the date column with the following code:

return_series$date <- as.Date(as.yearmon(return_series$date))

# A tibble: 6 x 2
  date         return
  <date>        <dbl>
1 2002-01-01  0.0292 
2 2002-02-01  0.0439 
3 2002-03-01  0.0240 
4 2002-04-01  0.00585
5 2002-05-01 -0.0169 
6 2002-06-01 -0.0686 

My goal is to convert the return_series tibble to xts data to use it for further analysis with the PerformanceAnalytics package. But when I use the command as.xts I receive the following error:

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

Error in as.POSIXlt.character(x, tz, ...) : 
  character string is not in a standard unambiguous format

How can I change the format to xts or is there an other possibility to work with the PerformanceAnalytics package instead of converting to xts?

Thank you very much for your help!

>Solution :

You need to follow the xts documentation more closely:

> tb <- as_tibble(data.frame(date=as.Date("2002-01-01") + (0:5)*30, 
+                            return=rnorm(6)))
> tb
# A tibble: 6 × 2
  date       return
  <date>      <dbl>
1 2002-01-01  0.223
2 2002-01-31 -0.352
3 2002-03-02  0.149
4 2002-04-01  1.42 
5 2002-05-01 -1.04 
6 2002-05-31  0.507
> 
> x <- xts(tb[,-1], order.by=as.POSIXct(tb[[1]]))
> x
                       return
2001-12-31 18:00:00  0.222619
2002-01-30 18:00:00 -0.352288
2002-03-01 18:00:00  0.149319
2002-03-31 18:00:00  1.421967
2002-04-30 19:00:00 -1.035087
2002-05-30 19:00:00  0.507046
> 

An xts object prefers a POSIXct datetime object, which you can convert from a Date object. For a (closely-related) zoo object you could keep Date.

Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading