# Re: [R] re cursively divide a value to get a sequence

From: bartjoosen <bartjoosen_at_hotmail.com>
Date: Wed, 09 Jul 2008 03:36:59 -0700 (PDT)

Maybe something like this:

f1 with loop, f2 without.

f1 <- function(start,len, div) {
x <- rep(start,len)
for (i in 2 : (len-1)) {

x[i] <- x[i-1]/div
}
x[len] <- 0
return(x)
}

f2 <- function(start,len, div) {

```x <- rep(start,len)
y <- div^(0:(len-1))
x <- x/y
```

x[length(x)] <- 0
return(x)
}

system.time(f1(10000,100000,0.5))
system.time(f2(10000,100000,0.5))

Best regards

Bart

Anne-Marie Ternes wrote:
>
> Hi,
>
> if given the value of, say, 15000, I would like to be able to divide
> that value recursively by, say, 5, and to get a vector of a determined
> length, say 9, the last value being (set to) zero- i.e. like this:
>
> 15000 3000 600 120 24 4.8 0.96 0.192 0
>
> These are in fact concentration values from an experiment. For my
> script, I get only the starting value (here 15000), and the factor by
> which concentration is divided for each well, the last one having, by
> definition, no antagonist at all.
>
> I have tried to use "seq", but it can "only" do positive or negative
> increment. I didn't either find a way with "rep", "sweep" etc. These
> function normally start from an existing vector, which is not the case
> here, I have only got a single value to start with.
>
> I suppose I could do something "loopy", but I'm sure there is a better
> way to do it.
>
> Thanks a lot for your help, hope the question is not too dumb...
>
> Anne-Marie
>
> ______________________________________________
> R-help_at_r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>
>

```--
View this message in context: http://www.nabble.com/recursively-divide-a-value-to-get-a-sequence-tp18358046p18358674.html
Sent from the R help mailing list archive at Nabble.com.

______________________________________________
R-help_at_r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help