[R] ts instead of xts object

Joshua Ulrich josh.m.ulrich at gmail.com
Tue Mar 11 12:45:30 CET 2014


On Tue, Mar 11, 2014 at 12:14 AM, Bill <william108 at gmail.com> wrote:
>
> Hello. I have a dataframe that has a date column. The intervals between
> dates vary. I want to convert this to a ts object. I was able to convert it
> to an xts object but the package I want to analyse this data with (called
> 'changepoint') does not seem to want to deal with xts. In the example they
> give they use the following:
>
> data(discoveries)
> dis.pelt=cpt.meanvar(discoveries,test.stat='Poisson',method='PELT')
> plot(dis.pelt,cpt.width=3)
> cpts.ts(dis.pelt)
>
> and if I check:
> str(discoveries)
>  Time-Series [1:100] from 1860 to 1959: 5 3 0 2 0 3 2 3 6 1 ...
>
> If I try with my data
> str(testTSRad)
> An 'xts' object on 2011-07-16 07:08:02/2013-09-20 01:25:48 containing:
>   Data: num [1:501, 1] 76 77 79 86 79 79 85 86 89 88 ...
>   Indexed by objects of class: [POSIXct,POSIXt] TZ:
>   xts Attributes:
>  NULL
>
> where I used this:
>
> testTSRad=xts(radSampPerRegion[[2]][
> ,2],order.by=as.POSIXct(radSampPerRegion[[2]][
> ,1]))
>
> I get this:
>
> testt=cpt.mean(testTSRad)
> Error in single.mean.norm(data, penalty, pen.value, class, param.estimates)
> :
>   Data must have atleast 2 observations to fit a changepoint model.
>
This is because of what ?cpt.mean says about the "data" argument:
data: A vector, ts object or matrix containing the data within
      which you wish to find a changepoint.  If data is a matrix,
      each row is considered a separate dataset.

An xts object is a matrix (with an index attribute), so each row is
considered a separate data set.  Your object only has one column,
hence only one observation per data set.  Things will work if you drop
the dimensions of your single-column xts object:
testt <- cpt.mean(drop(testTSRad))

> My data is below. Is there a way to convert it to ts?
>
Yes, as is generally the case, use the "as" method:
as.ts(testTSRad)

Best,
--
Joshua Ulrich  |  about.me/joshuaulrich
FOSS Trading  |  www.fosstrading.com




More information about the R-help mailing list