st: RE: ifelse mata function

 From philippe van kerm To "statalist@hsphsun2.harvard.edu" Subject st: RE: ifelse mata function Date Tue, 12 May 2009 13:29:24 +0200

```See under 'conditional operator':

help m2_op_conditional (http://www.stata.com/help.cgi?m2_op_conditional)

Philippe

> -----Original Message-----
> From: owner-statalist@hsphsun2.harvard.edu [mailto:owner-
> statalist@hsphsun2.harvard.edu] On Behalf Of Nicola Orsini
> Sent: Tuesday, May 12, 2009 1:21 PM
> To: statalist@hsphsun2.harvard.edu
> Subject: st: ifelse mata function
>
> Mata users,
>
> do you know any mata function similar to ifelse implemented in R or
> the cond() programming function in Stata?
>
> http://www.iiap.res.in/astrostat/School07/R/library/base/html/ifelse.ht
> ml
>
> I know I can loop across observations but it's not really fast with
> large dataset in an optimization process where this process has to be
> repeated many times.
>
> Here is a simple example
>
> mata
> mata clear
> y =  runiform(10,1)
> x =  runiform(10,1)
> z =  J(10,1,.)
> for (i=1; i<=rows(y); i++) {
>             if (y[i]>= x[i]) z[i] = y[i]-x[i]
>                   else       z[i] = x[i]-y[i]
>       }
> y, x, z
> end
>
> Wouldn't be great to have a mata function like -ifelse-?
>
> ifelse(y>=x, z=y-x, z=x-y)
>
> Nicola
>
>
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/statalist/faq
> *   http://www.ats.ucla.edu/stat/stata/

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/
```