Statalist


[Date Prev][Date Next][Thread Prev][Thread Next][Date index][Thread index]

RE: st: RE: Using Mata within a foreach loop = r(1)


From   "Nick Cox" <n.j.cox@durham.ac.uk>
To   <statalist@hsphsun2.harvard.edu>
Subject   RE: st: RE: Using Mata within a foreach loop = r(1)
Date   Fri, 7 Dec 2007 14:58:44 -0000

The answer to your 2 is Yes, with some exceptions for good reasons, as
when you 
call Stata from Mata, but that is not the issue as I understand it. 

The issue is that at that point in your code you are back in Stata and
so 
(in context) -end- is illegal. 

There can be no legal or meaningful -end- of a state without some
beginning
that defines the start of that state (cf. much philosophy and all
eschatology). 

Less enigmatically, in Stata -end- on a line by itself can indicate the
end of 
a program which started with a -program- statement, and in Mata -end-
indicates
a desire to return to Stata. -help end- returns nothing, because -end-
is 
not a statement by itself. But -search end- brings up some pointers,
some 
of which are relevant to your 1. 

It's a hard lesson that Stata's not behaving as you would guess, imagine
or prefer 
does not in itself constitute a bug. 

Pablo Mitnik

Thanks much for the suggestion . I can do that, and will probably do it.
But:
1. Is there a documented "end" command in Stata? Typing "help end" 
returns nothing, while "search end" only returns the Mata end statement.
2. If I am "within Mata," shouldn't everything be run in Mata?

Maarten buis wrote:
> --- Pablo Mitnik <pmitnik@ssc.wisc.edu> wrote:
>   
>> This is rather inconvenient when you have a longer code to run in 
>> Mata; and I haven't found any explanation in the manuals why the code

>> with "mata" and "end" shouldn't work -- my bet is that this is a bug.
>>     
>
> The end command is run in Stata not Mata, so you get the correct error
> message.
>
> The way to do this in a more convenient way is to first create a mata
> function, so within the loop all you need is a single call to Mata.
> This is explained in terms of .ado programming in -help m1_ado-.

*
*   For searches and help try:
*   http://www.stata.com/support/faqs/res/findit.html
*   http://www.stata.com/support/statalist/faq
*   http://www.ats.ucla.edu/stat/stata/



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