Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

st: ifelse mata function


From   Nicola Orsini <Nicola.Orsini@ki.se>
To   statalist@hsphsun2.harvard.edu
Subject   st: ifelse mata function
Date   Tue, 12 May 2009 13:20:40 +0200

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.html

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/



© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   What's new   |   Site index