[R] A more idiomatic way to write this

Andrew Robinson A.Robinson at ms.unimelb.edu.au
Mon Feb 25 02:48:47 CET 2008


How about

x <- x / rep(divs, rep(1000, 1000))

?

Cheers,

Andrew


On Sun, Feb 24, 2008 at 10:36:23PM -0300, Andre Nathan wrote:
> Hello,
> 
> I have a vector of 1,000,000 numbers and another vector of 1,000
> divisors. What I'd like to do is to divide the first 1,000 numbers of
> the first vector by the first divisor, then the next 1,000 by the second
> divisor and so on. I came up with this, but I was wondering if there is
> a more idiomatic, R-like way to write it:
> 
> x <- ...
> divs <- ...
> 
> for (i in seq(from = 1, to = 1000000, by = 1000)) {
>   x[i:(i - 1 + 1000)] <- x[i:(i - 1 + 1000)] / divs[i %/% 1000 + 1]
> }
> 
> Any suggestions are welcome.
> 
> Thanks in advance,
> Andre
> 
> ______________________________________________
> R-help at 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.
> 
> -- 
> This message has been scanned for viruses and
> dangerous content by MailScanner, and is
> believed to be clean.

-- 
Andrew Robinson  
Department of Mathematics and Statistics            Tel: +61-3-8344-6410
University of Melbourne, VIC 3010 Australia         Fax: +61-3-8344-4599
http://www.ms.unimelb.edu.au/~andrewpr
http://blogs.mbs.edu/fishing-in-the-bay/



More information about the R-help mailing list