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]
Re: st: How do i substitute the return local of program in the if expression of the egen command?
From
Maarten buis <[email protected]>
To
[email protected]
Subject
Re: st: How do i substitute the return local of program in the if expression of the egen command?
Date
Tue, 30 Mar 2010 09:57:16 +0000 (GMT)
--- On Tue, 30/3/10, A Loumiotis wrote:
> I have written a program (with the name andpve) that
> generates an expression of the form:
>
> var1>=0 & var2>=0 & ... & varN>=0
>
> and returns this value as a local with name r(andpve).
>
> I then want to use r(andpve) in another progam (rowctotal)
> where U substitute it in the if expression of the egen command.
>
> egen `left'_a = rowtotal(`right') if r(andpve), missing
> egen `left'_b = rowmin(`right') if !(r(andpve))
egen `left'_a = rowtotal(`right') if `r(andpve)', missing
egen `left'_b = rowmin(`right') if !(`r(andpve)')
Hope this helps,
Maarten
--------------------------
Maarten L. Buis
Institut fuer Soziologie
Universitaet Tuebingen
Wilhelmstrasse 36
72074 Tuebingen
Germany
http://www.maartenbuis.nl
--------------------------
>
> But the egen command does not seem understand the r(andpve)
> as an if
> expression or the !(r(andpve)) as an if expression.
>
> What did I do wrong? I'm new to Stata. The code is
> below.
>
> Best regards,
>
> Antonis Loumiotis
> Athens, Greece
>
>
> ------------------------------
> ---------
> program rowctotal, rclass
> version 11
> gettoken left right: 0
> capture drop `left'
> andpve `right'
> di r(andpve)
> egen `left'_a = rowtotal(`right') if r(andpve),
> missing
> egen `left'_b = rowmin(`right') if !(r(andpve))
> egen `left' = rowtotal(`left'_*), missing
> *drop `left'_*
> end
>
> program andpve, rclass
> local k = 1
> while "``k''" != "" {
> local ++k
> }
> local --k
> local i = 1
> local andpve ""
> while `i' <= `k'-1 {
> local andpve "`andpve'``i''>=0 & "
> local ++i
> }
> local andpve "`andpve'``i''>=0"
> return local andpve `andpve'
> end
>
> -----------------------------------------------------------
>
> *
> * 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/