# [R] Repeated Indexing / Sequence Operation

Charles C. Berry cberry at tajo.ucsd.edu
Fri Dec 31 20:53:35 CET 2010

```On Fri, 31 Dec 2010, Paolo Rossi wrote:

> Hi Everyone,
>
> quick question before the end of the year.
>
> I have soem indices to select data from a bigger sample. I want to select n
> days before each index and n days after the index. Any clever way to do it.

For heavy duty applications involving intervals - many intervals, finding
overlapping intervals, set operations, et cetera, you may want to use the
IRanges package:

http://www.bioconductor.org/help/bioc-views/release/bioc/html/IRanges.html

> A for loop would do but I wanted to know if there is a moreR-friendly way to
> approach this
>
> Example
> # InitialIndices
> i2 = (90, 190, 290)
>

Like this:

>  i2 <- c(90, 190, 290)
> as.vector( IRanges( start= i2 - 5, end = i2 + 5 ) )
[1]  85  86  87  88  89  90  91  92  93  94  95 185 186 187 188 189 190 191 192
[20] 193 194 195 285 286 287 288 289 290 291 292 293 294 295
>

HTH,

Chuck

> # Indices I want to end up with
> i3 = c(85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 185, 186, 187, 188, 189,
> 190, 191, 192, 193, 194, 195
> 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295)
> # A way to get Final Indices
> SampleWidth
> i3 = c(i2)
> for (j in seq(1, SampleWidth )) {
> i3 = c(i3, i2 + j )
> i3 = c(i3, i2 - j )
> }
>
>
> I tried to tackle this with seq and the apply families but got nowhere
>
> Thanks and Happy New Year
>
> Paolo
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help