Statalist


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

RE: st: saved local macro


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   RE: st: saved local macro
Date   Fri, 31 Oct 2008 14:47:38 -0000

Another solution is to say 

if r(numbd) == "1" { 

That should work, but I don't recommend it. I'd go the scalar route. 

Nick 
n.j.cox@durham.ac.uk 

Maarten buis

--- Paul O'Brien <paul.obrien@afe2.org.uk> wrote:
> i have a small program cu7 with a saved local macro:
> program cu7, rclass
> local numd 1
> return local numd =`numd'
> end
> 
> but using the program in an ado:
> cu7
> if r(numd) == 1 {
> display r(numd)
> }
> 
> i get:
> . cu7
> . if r(numd) == 1 {
> type mismatch

There are two solutions. First you can refer to the returned result as
`r(numd)' like in the example below:

*--------- begin example ----------
capture program drop cu7
program cu7, rclass
local numd 1
return local numd =`numd'
end
cu7
if `r(numd)' == 1 {
	di "bla"
}
*---------- end example -----------

Second you can return numd as a scalar instead of a local, like in the
example below:

*--------- begin example ----------
capture program drop cu7
program cu7, rclass
local numd 1
return scalar numd =`numd'
end
cu7
if r(numd) == 1 {
	di "bla"
}
*--------- end example -------------


*
*   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