Try this indeed

replace(replace(x, x == 1, sample(0:1, sum(x == 1), rep = TRUE)), x == 2, 1)

On Tue, Dec 28, 2010 at 3:14 PM, M.Ribeiro <mresendeufv@yahoo.com.br> wrote:

>
> Hi Henrique,
> Thanks for the fast answer,
> The only problem in your code, which I think I didn't mention in my message
> is that I would like one different random sampling procedure for each 1 in
> my vector
>
> The way it was written, it samples only once and replace by every 1:
> > x = as.matrix(c(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1))
> > replace(replace(x, x == 1, sample(0:1, 1)), x == 2, 1)
>       [,1]
>  [1,]    1
>  [2,]    1
>  [3,]    1
>  [4,]    1
>  [5,]    1
>  [6,]    1
>  [7,]    1
>  [8,]    1
>  [9,]    1
> [10,]    1
> [11,]    1
> [12,]    1
> [13,]    1
> [14,]    1
> [15,]    1
>
> Thanks
>
> --
> View this message in context:
> http://r.789695.n4.nabble.com/Faster-way-to-do-it-using-apply-tp3166161p3166203.html
> Sent from the R help mailing list archive at Nabble.com.
>
> ______________________________________________
> 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.
>



-- 
Henrique Dallazuanna
Curitiba-Paraná-Brasil
25° 25' 40" S 49° 16' 22" O

	[[alternative HTML version deleted]]

