Notice: On April 23, 2014, Statalist moved from an email list to a forum, based at statalist.org.
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
st: RE: RE: Evaluating a set of conditions
From
"Nick Cox" <[email protected]>
To
<[email protected]>
Subject
st: RE: RE: Evaluating a set of conditions
Date
Wed, 16 Jun 2010 23:58:56 +0100
Martin makes key points here. I'd emphasise his last: internalising that
true expressions evaluate to 1 and false to 0 is often most helpful. A
first tutorial is at
FAQ . . . . . . . . . . . . . . . . . . . . . . . True and false in
Stata
2/03 What is true and false in Stata?
http://www.stata.com/support/faqs/data/trueorfalse.html
Nick
[email protected]
Martin Weiss
" but I hardly ever use them because
understanding them (or remembering them) usually takes longer then
writing the 'lengthy' qualifiers."
-cond- and -inrange- are among the most easily understood functions in
Stata, if you want my take on this. Try Nick and coauthor`s
http://www.stata-journal.com/sjpdf.html?articlenum=pr0016 tutorial on
-cond-
or http://www.stata-journal.com/sjpdf.html?articlenum=dm0026 on
-inrange-.
Also, you can multiply expressions which can be handy. So if you want
the
running sum only for the cars with bad to average repair record:
***
sysuse auto, clear
sort rep78
gen newvar=sum((rep78<=3)*price)
l rep78 price newvar
***
Thomas Speidel
I realize this is a very broad question and no one solution can fit
all problems. I am looking for more efficient or elegant alternatives
to evaluate a set of conditions in Stata, than a lenghty if qualifier.
E.g.:
do something if A==1 & (B>2 & B<.) & (C==1 | D!=2)
these expression can become lengthy and one can think of more elegant
ways to come to the same results.
cond and inrange are the first things that come to my mind that may
(or may not) simplify the problem, but I hardly ever use them because
understanding them (or remembering them) usually takes longer then
writing the 'lengthy' qualifiers.
To complicate matters one has to account for missing values.
Admittedly, this question came about from the recent topic on missing
values.
If someone want to share an example, please do so.
*
* 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/