Thanks, works nicely. I have to do some clocking to see how much the
improvement is, but I surely learnt again.

Attentive readers might have noticed my initial code contains an error.
tmp <- x[pos2[i]:pos2[i+1]]
should be:
tmp <- x[pos2[i]:(pos2[i+1]-1)]
off course...

On Tue, May 4, 2010 at 5:50 PM, jim holtman <jholt...@gmail.com> wrote:

> Try this:
>
> > x <- 1:10
> > pos <- c(1,4,7)
> > pat <- rep(seq_along(pos), times=diff(c(pos, length(x) + 1)))
> > split(x, pat)
> $`1`
> [1] 1 2 3
> $`2`
> [1] 4 5 6
> $`3`
> [1]  7  8  9 10
>
>
>
> On Tue, May 4, 2010 at 11:29 AM, Joris Meys <jorism...@gmail.com> wrote:
>
>> Dear all,
>>
>> I'm trying to optimize code and want to avoid for-loops as much as
>> possible.
>> I'm applying a calculation on subvectors from a big one, and I get the
>> subvectors by using a vector of starting positions:
>>
>> x <- 1:10
>> pos <- c(1,4,7)
>> n <- length(x)
>>
>> I try to do something like this :
>> pos2 <- c(pos, n+1)
>>
>> out <- c()
>> for(i in 1:n){
>>     tmp <- x[pos2[i]:pos2[i+1]]
>>     out <- c(out, length(tmp))
>> }
>>
>> Never mind the length function, I apply a far more complicated one. It's
>> about the use of the indices in the for-loop. I didn't see any way of
>> doing
>> that with an apply, unless there is a very convenient way of splitting my
>> vector in a list of the subvectors or so.
>>
>> Anybody an idea?
>> Cheers
>> --
>> Joris Meys
>> Statistical Consultant
>>
>> Ghent University
>> Faculty of Bioscience Engineering
>> Department of Applied mathematics, biometrics and process control
>>
>> Coupure Links 653
>> B-9000 Gent
>>
>> tel : +32 9 264 59 87
>> joris.m...@ugent.be
>> -------------------------------
>> Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php
>>
>>        [[alternative HTML version deleted]]
>>
>> ______________________________________________
>> R-help@r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-help
>> PLEASE do read the posting guide
>> http://www.R-project.org/posting-guide.html<http://www.r-project.org/posting-guide.html>
>> and provide commented, minimal, self-contained, reproducible code.
>>
>
>
>
> --
> Jim Holtman
> Cincinnati, OH
> +1 513 646 9390
>
> What is the problem that you are trying to solve?
>



-- 
Joris Meys
Statistical Consultant

Ghent University
Faculty of Bioscience Engineering
Department of Applied mathematics, biometrics and process control

Coupure Links 653
B-9000 Gent

tel : +32 9 264 59 87
joris.m...@ugent.be
-------------------------------
Disclaimer : http://helpdesk.ugent.be/e-maildisclaimer.php

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to