Re: [R] problem with function "rep"

From: Berwin A Turlach <>
Date: Thu, 12 Jun 2008 23:11:18 +0800

G'day Julien,

On Thu, 12 Jun 2008 16:48:43 +0200
Julien Hunt <> wrote:

> I am currently writing a program where I need to use function rep.
> The results I get are quite confusing. Given two
> vectors A and B, I want to replicate a[1] b[1]
> times, a[2] b[2] times and so on.
> All the entries of vector B are positive integers.
> My problem comes from the fact that if I sum up
> all the elements of B, [...]

Others mentioned already the need for a reproducible example. But my guess is that the elements in B are calculated. Recently, I was sent the following code by a colleague of mine:

Hi Berwin,

Try this in R2.7.0

pai = c(.4,.1,.1,.4)
s = .5

p = diag(1-s, 4) + s * t(matrix(pai, 4, 4))
f = diag(pai) %*% p
z = 200*f

### bug???
length(rep(1:16, z))
length(rep(1:16, round(z)))

I tested the code and my answer was:

Interesting variation on FAQ 7.31:

Look at z-round(z) and where the negative residuals are.

My money is on you having the same problem and that using round(B) instead of B in the rep() command will solve your problem.

HTH. Cheers,

        Berwin mailing list PLEASE do read the posting guide and provide commented, minimal, self-contained, reproducible code. Received on Thu 12 Jun 2008 - 17:33:12 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Thu 12 Jun 2008 - 18:30:40 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.

list of date sections of archive