[R-SIG-Finance] Selecting a time range from an XTS series?

Jeff Ryan jeff.a.ryan at gmail.com
Thu Sep 23 17:39:48 CEST 2010


> ls(2, patt="^.index", all=TRUE)
 [1] ".index"      ".index<-"    ".indexDate"  ".indexday"   ".indexhour"
 [6] ".indexisdst" ".indexmday"  ".indexmin"   ".indexmon"   ".indexsec"
[11] ".indexwday"  ".indexweek"  ".indexyday"  ".indexyear"

I'll add some documentation to these as well.  For now, count *this*
as the documentation ;-)

Best,
Jeff

On Thu, Sep 23, 2010 at 10:34 AM, Ulrich Staudinger
<ustaudinger at gmail.com> wrote:
> .indexmin ?!!
> Nice function.
> Thanks!
>
> On Thu, Sep 23, 2010 at 5:22 PM, Jeff Ryan <jeff.a.ryan at gmail.com> wrote:
>>
>> Ulrich,
>>
>> Misread your question.  ISO subsetting ins't going to work on  this,
>> but here is a solution that will.
>>
>> # 8:30 - 15:00
>> x <- timeBasedSeq('2010-01-01 08:30/2010-01-01 15:00')
>> x <- xts(1:length(x), x)
>> x[.indexmin(x) %in% 10:20]
>>                    [,1]
>> 2010-01-01 09:10:00   41
>> 2010-01-01 09:11:00   42
>> 2010-01-01 09:12:00   43
>> 2010-01-01 09:13:00   44
>> 2010-01-01 09:14:00   45
>> 2010-01-01 09:15:00   46
>> 2010-01-01 09:16:00   47
>> 2010-01-01 09:17:00   48
>> 2010-01-01 09:18:00   49
>> 2010-01-01 09:19:00   50
>> 2010-01-01 09:20:00   51
>> 2010-01-01 10:10:00  101
>> 2010-01-01 10:11:00  102
>> 2010-01-01 10:12:00  103
>> 2010-01-01 10:13:00  104
>> 2010-01-01 10:14:00  105
>> 2010-01-01 10:15:00  106
>> 2010-01-01 10:16:00  107
>> 2010-01-01 10:17:00  108
>> 2010-01-01 10:18:00  109
>> 2010-01-01 10:19:00  110
>> 2010-01-01 10:20:00  111
>> 2010-01-01 11:10:00  161
>> 2010-01-01 11:11:00  162
>> 2010-01-01 11:12:00  163
>> 2010-01-01 11:13:00  164
>> 2010-01-01 11:14:00  165
>> 2010-01-01 11:15:00  166
>> 2010-01-01 11:16:00  167
>> 2010-01-01 11:17:00  168
>> 2010-01-01 11:18:00  169
>> 2010-01-01 11:19:00  170
>> 2010-01-01 11:20:00  171
>> 2010-01-01 12:10:00  221
>> 2010-01-01 12:11:00  222
>> 2010-01-01 12:12:00  223
>> 2010-01-01 12:13:00  224
>> 2010-01-01 12:14:00  225
>> 2010-01-01 12:15:00  226
>> 2010-01-01 12:16:00  227
>> 2010-01-01 12:17:00  228
>> 2010-01-01 12:18:00  229
>> 2010-01-01 12:19:00  230
>> 2010-01-01 12:20:00  231
>> 2010-01-01 13:10:00  281
>> 2010-01-01 13:11:00  282
>> 2010-01-01 13:12:00  283
>> 2010-01-01 13:13:00  284
>> 2010-01-01 13:14:00  285
>> 2010-01-01 13:15:00  286
>> 2010-01-01 13:16:00  287
>> 2010-01-01 13:17:00  288
>> 2010-01-01 13:18:00  289
>> 2010-01-01 13:19:00  290
>> 2010-01-01 13:20:00  291
>> 2010-01-01 14:10:00  341
>> 2010-01-01 14:11:00  342
>> 2010-01-01 14:12:00  343
>> 2010-01-01 14:13:00  344
>> 2010-01-01 14:14:00  345
>> 2010-01-01 14:15:00  346
>> 2010-01-01 14:16:00  347
>> 2010-01-01 14:17:00  348
>> 2010-01-01 14:18:00  349
>> 2010-01-01 14:19:00  350
>> 2010-01-01 14:20:00  351
>>
>> HTH,
>> Jeff
>>
>> On Wed, Sep 22, 2010 at 10:25 AM, Jeff Ryan <jeff.a.ryan at gmail.com> wrote:
>> > Ulrich,
>> >
>> > # create a time sequence from the beginning of 2010 to the 3rd, by hours
>> > # Note that the level of granularity is determined by the maximum
>> > precision
>> > # specified of both sides.  Here it is to the hour level - 65 hours in
>> > the example:
>> >
>> > x <- timeBasedSeq('2010/2010-01-03 15')
>> >
>> > head(x)
>> > [1] "2010-01-01 00:00:00 CST" "2010-01-01 01:00:00 CST"
>> > [3] "2010-01-01 02:00:00 CST" "2010-01-01 03:00:00 CST"
>> > [5] "2010-01-01 04:00:00 CST" "2010-01-01 05:00:00 CST"
>> >
>> >
>> > xts(1:length(x),x)['T08:00:00/T10:00:00']
>> >                    [,1]
>> > 2010-01-01 08:00:00    9
>> > 2010-01-01 09:00:00   10
>> > 2010-01-01 10:00:00   11
>> > 2010-01-02 08:00:00   33
>> > 2010-01-02 09:00:00   34
>> > 2010-01-02 10:00:00   35
>> > 2010-01-03 08:00:00   57
>> > 2010-01-03 09:00:00   58
>> > 2010-01-03 10:00:00   59
>> >
>> > I'll add some examples into the documentation of ?.parseISO8601.  In
>> > general, the actual ISO8601 standard is the place to look first, as
>> > xts implements most of the subsetting functionality defined there.
>> >
>> > Best,
>> > Jeff
>> >
>> >
>> > On Wed, Sep 22, 2010 at 10:10 AM, Ulrich Staudinger
>> > <ustaudinger at gmail.com> wrote:
>> >> Hi there,
>> >>
>> >> I am looking for a way to fetch a specific time range (not a date
>> >> range)
>> >> from an XTS object (a price series).
>> >>
>> >> As input, I have an xts object that looks roughly like this:
>> >>
>> >> ..........
>> >> 2010-08-20 19:54:49   2537.5
>> >> 2010-08-20 19:55:58   2550.0
>> >> 2010-08-20 19:58:59   2587.5
>> >> 2010-08-20 19:59:42   2675.0
>> >> 2010-08-20 20:02:50   2675.0
>> >> 2010-08-20 20:03:50   2675.0
>> >> 2010-08-20 20:06:59   2675.0
>> >> 2010-08-20 20:07:59   2675.0
>> >> 2010-08-20 20:08:59   2687.5
>> >> 2010-08-20 20:09:57   2750.0
>> >> 2010-08-20 20:10:35   2750.0
>> >> 2010-08-20 20:11:59   2750.0
>> >> 2010-08-20 20:12:58   2750.0
>> >> 2010-08-20 20:13:49   2812.5
>> >> ........
>> >>
>> >>
>> >> I would like to know if there is a way to fetch something like
>> >> ****-**-**
>> >> **:10:00 to ****-**-** **:20:00. Meaning, over the whole data set, all
>> >> information between 10th and 20th minute.
>> >> So, I would expect something like this:
>> >>
>> >> ....
>> >> 2010-08-19 23:10:01     123
>> >> 2010-08-19 23:19:01     123
>> >> 2010-08-19 23:20:01     123
>> >> 2010-08-20 00:10:01     123
>> >> 2010-08-19 00:11:01     123
>> >> 2010-08-19 00:20:01     123
>> >> 2010-08-19 01:10:01     123
>> >> ...
>> >>
>> >> Is such a function available?
>> >>
>> >> Thanks,
>> >> Ulrich
>> >>
>> >> --
>> >> Ulrich Staudinger
>> >> ustaudinger at activequant.org
>> >> http://www.activequant.org
>> >>
>> >>        [[alternative HTML version deleted]]
>> >>
>> >> _______________________________________________
>> >> R-SIG-Finance at stat.math.ethz.ch mailing list
>> >> https://stat.ethz.ch/mailman/listinfo/r-sig-finance
>> >> -- Subscriber-posting only. If you want to post, subscribe first.
>> >> -- Also note that this is not the r-help list where general R questions
>> >> should go.
>> >>
>> >
>> >
>> >
>> > --
>> > Jeffrey Ryan
>> > jeff.a.ryan at gmail.com
>> >
>>
>>
>>
>> --
>> Jeffrey Ryan
>> jeff.a.ryan at gmail.com
>
>
>
> --
> Ulrich Staudinger
> ustaudinger at activequant.org
> http://www.activequant.org
>



-- 
Jeffrey Ryan
jeff.a.ryan at gmail.com



More information about the R-SIG-Finance mailing list