[R] Faster way to do it??...using apply?

Jonathan P Daily jdaily at usgs.gov
Tue Dec 28 19:06:12 CET 2010


I don't know if it's any faster, but it is also possible this way:

y <- ifelse(x ==1, round(runif(x)), sign(x))
--------------------------------------
Jonathan P. Daily
Technician - USGS Leetown Science Center
11649 Leetown Road
Kearneysville WV, 25430
(304) 724-4480
"Is the room still a room when its empty? Does the room,
 the thing itself have purpose? Or do we, what's the word... imbue it."
     - Jubal Early, Firefly

r-help-bounces at r-project.org wrote on 12/28/2010 12:48:04 PM:

> [image removed] 
> 
> Re: [R] Faster way to do it??...using apply?
> 
> Henrique Dallazuanna 
> 
> to:
> 
> M.Ribeiro
> 
> 12/28/2010 12:51 PM
> 
> Sent by:
> 
> r-help-bounces at r-project.org
> 
> Cc:
> 
> r-help
> 
> 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 at 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 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.
> >
> 
> 
> 
> -- 
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O
> 
>    [[alternative HTML version deleted]]
> 
> ______________________________________________
> 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.



More information about the R-help mailing list