[R] creating a reverse geometric sequence

Erik Iverson eriki at ccbr.umn.edu
Sun May 23 19:43:16 CEST 2010


Hello,

Can anyone think of a non-iterative way to generate a decreasing geometric 
sequence in R?

For example, for a hypothetical function dg, I would like:

 > dg(20)
[1] 20 10 5 2 1

where I am using integer division by 2 to get each subsequent value in the 
sequence.


There is of course:

dg <- function(x) {
   res <- integer()
   while(x >= 1) {
     res <- c(res, x)
     x <- x %/% 2
   }
   res
}

 > dg(20)
[1] 20 10  5  2  1

This implementation of 'dg' uses an interative 'while' loop.  I'm simply 
wondering if there is a way to vectorize this process?

Thanks,
Erik



More information about the R-help mailing list