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: How do i substitute the return local of program in the if expression of the egen command?
From
A Loumiotis <[email protected]>
To
[email protected]
Subject
st: How do i substitute the return local of program in the if expression of the egen command?
Date
Tue, 30 Mar 2010 12:29:07 +0300
Hi,
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))
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/