> But you got only two (eventually one) distinct values, right? Look at
> the code for 'ifelse': yes and no are only called once each, then
> recycled to desired length.
>
> I guess you want something like
>
> x <- rnorm(10)
> y <- rnorm(10)
> z <- rnorm(10)
> y1 <- ifelse(x > 0, y, z)
>   
Thanks for the help.

Although this would do the trick, is there a way to call repetitively 
rnorm (rpois...) *inside the ifelse* rather than constructing the vector 
outside ? Like in the following where cos() and sin() functions are 
evaluated for each row :
x <- rnorm(10)
y1 <- ifelse(x > 0, cos(x), sin(x))

I am trying to understand the difference of behaviour. R acts as if 
rnorm(1) return value were known after the first call and does not 
evaluate rnorm(1) in

y1 <- ifelse(x > 0, rnorm(1) ,  rnorm(1))

again after the first evaluation.


Jacques.

______________________________________________
R-help@stat.math.ethz.ch 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.

Reply via email to