Bookmark and Share

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: Mata and do files


From   Tirthankar Chakravarty <[email protected]>
To   [email protected]
Subject   Re: st: Mata and do files
Date   Wed, 10 Aug 2011 17:09:18 -0700

Ah, I see. Sorry about the mix-up then.

T

On Wed, Aug 10, 2011 at 5:06 PM, Nick Cox <[email protected]> wrote:
> Quite so, and I didn't say otherwise. I am replying to Alex's question
> addressed to me of why I recommended that Alex use -tokens()-, which
> is explicit below.
>
> I am pointing out that doing without -tokens()- does not work with
> 10.1, but without experiment I can not be absolutely sure that
> -st_view()- is not more indulgent in 11 or 12.
>
> Nick
>
> On Thu, Aug 11, 2011 at 12:57 AM, Tirthankar Chakravarty
> <[email protected]> wrote:
>> Nick,
>>
>> That does not appear to be the code I sent to the list in my (Wed, Aug
>> 10, 2011 at 2:22 PM) posting. Here it is again:
>>
>> /******************************/
>> sysuse auto, clear
>> capture mata mata drop theta()
>> mata
>> // mata set matastrict on
>> mata set matastrict off
>>
>> // define theta() function
>> real scalar theta()
>> {
>> st_view(a = ., ., tokens("price length weight"))
>> a_cov = variance(a)
>> a_eigen = symeigensystem(a_cov, X = ., L = .)
>> return(L[1]/sum(L))
>> }
>> theta()
>> end
>> /******************************/
>>
>> T
>>
>> On Wed, Aug 10, 2011 at 4:36 PM, Nick Cox <[email protected]> wrote:
>>> I have 12, but it's at my workplace, and I'm not.
>>>
>>> . sysuse auto
>>> (1978 Automobile Data)
>>>
>>> . mata
>>> ------------------------------------------------- mata (type end to exit) -----
>>> : st_view(a = ., ., "price length weight")
>>> variable price length weight not found
>>>               st_view():  3500  invalid Stata variable name
>>>                 <istmt>:     -  function returned error
>>> r(3500);
>>>
>>> : end
>>> -------------------------------------------------------------------------------
>>>
>>> . about
>>>
>>> Stata/SE 10.1 for Windows
>>> Born 10 Jun 2010
>>>
>>>
>>> On Thu, Aug 11, 2011 at 12:30 AM, Tirthankar Chakravarty
>>> <[email protected]> wrote:
>>>> Nick,
>>>>
>>>> I don't have 12 either. That code was from a fully-updated 11.2.
>>>>
>>>> However, I have just checked with my 10.1 and it seems to go through
>>>> without problems.
>>>>
>>>> T
>>>>
>>>> On Wed, Aug 10, 2011 at 3:57 PM, Nick Cox <[email protected]> wrote:
>>>>> It didn't work for me in Stata 10.1. (My machine with Stata 12 is a mile away.)
>>>>>
>>>>> Nick
>>>>>
>>>>> On Wed, Aug 10, 2011 at 11:46 PM, Alex Olssen <[email protected]> wrote:
>>>>>> Thanks for the help!
>>>>>>
>>>>>> Tirthankar your solution works perfectly - the code works
>>>>>> interactively and from a do file.
>>>>>>
>>>>>> One question though, could you explain to me why I need to turn matastrict off?
>>>>>>
>>>>>> Nick, you said "price length weight" is not an acceptable argument for
>>>>>> -st_view()- however typing the following interactively in a new Stata
>>>>>> session suggests otherwise.
>>>>>>
>>>>>> sysuse auto, clear
>>>>>> mata
>>>>>> st_view(a=., ., "price length weight")
>>>>>> a
>>>>>>
>>>>>> Am I missing something?
>>>>>>
>>>>>> Cheers,
>>>>>> Alex
>>>>>>
>>>>>> On 11 August 2011 09:23, Nick Cox <[email protected]> wrote:
>>>>>>> "price length weight" is not an acceptable argument for -st_view()-.
>>>>>>> You need to tokenize it.
>>>>>>>
>>>>>>> I imagine that the do-file approach requires you to leave Mata with an
>>>>>>> -end- statement.
>>>>>>>
>>>>>>> Nick
>>>>>>>
>>>>>>> On Wed, Aug 10, 2011 at 10:14 PM, Alex Olssen <[email protected]> wrote:
>>>>>>>> Dear Nick,
>>>>>>>>
>>>>>>>> You are absolutely correct - it was Statalist.
>>>>>>>>
>>>>>>>> I am not sure what you mean by "try tokens("price length weight")."
>>>>>>>>
>>>>>>>> I looked at the help file and then tried the following, which again
>>>>>>>> works interactively but not from a do file...
>>>>>>>>
>>>>>>>> sysuse auto, clear
>>>>>>>> mata
>>>>>>>> real scalar theta()
>>>>>>>> {
>>>>>>>> st_view(a = ., ., tokens("price length weight"))
>>>>>>>> a_cov = variance(a)
>>>>>>>> a_eigen = symeigensystem(a_cov, X = ., L = .)
>>>>>>>> return(L[1]/sum(L))
>>>>>>>> }
>>>>>>>> theta()
>>>>>>>>
>>>>>>>> Any ideas?
>>>>>>>>
>>>>>>>> On 10 August 2011 23:54, Nick Cox <[email protected]> wrote:
>>>>>>>>> It's not Stata that bounces your emails; it's Statalist!
>>>>>>>>>
>>>>>>>>> Try
>>>>>>>>>
>>>>>>>>>  tokens("price length weight")
>>>>>>>>>
>>>>>>>>> Nick
>>>>>>>>>
>>>>>>>>> On Wed, Aug 10, 2011 at 12:39 PM, Alex Olssen <[email protected]> wrote:
>>>>>>>>>> Hi everyone,
>>>>>>>>>>
>>>>>>>>>> Apologies to anybody who gets this message twice - I just got an email
>>>>>>>>>> from Stata telling me my first message was bounced.  I checked the
>>>>>>>>>> archive and it doesn't appear to have arrived correctly.  In any
>>>>>>>>>> case...
>>>>>>>>>>
>>>>>>>>>> I am trying to learn some Mata and am having difficult running Mata
>>>>>>>>>> code from a do file.
>>>>>>>>>>
>>>>>>>>>> For example I can use the following code interactively, but if I try
>>>>>>>>>> run it from the do-file editor I get error r(3000).  I have looked
>>>>>>>>>> around for an answer in [M] and the Statalist archives to no avail.
>>>>>>>>>>
>>>>>>>>>> sysuse auto, clear
>>>>>>>>>> mata
>>>>>>>>>> real scalar theta()
>>>>>>>>>> {
>>>>>>>>>> st_view(a = ., ., "price length weight")
>>>>>>>>>> a_cov = variance(a)
>>>>>>>>>> a_eigen = symeigensystem(a_cov, X = ., L = .)
>>>>>>>>>> return(L[1]/sum(L))
>>>>>>>>>> }
>>>>>>>>>> theta()
>>>>>>>>>>
>>>>>>>>>> Any help would be greatly appreciated.
>
> *
> *   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/
>



-- 
Tirthankar Chakravarty
[email protected]
[email protected]

*
*   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–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index