Bookmark and Share

Notice: On March 31, it was announced that Statalist is moving from an email list to a forum. The old list will shut down on April 23, and its replacement, statalist.org is already up and running.


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

Re: st: Mata and do files


From   Tirthankar Chakravarty <tirthankar.chakravarty@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Mata and do files
Date   Wed, 10 Aug 2011 16:57:53 -0700

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 <njcoxstata@gmail.com> 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
> <tirthankar.chakravarty@gmail.com> 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 <njcoxstata@gmail.com> 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 <alex.olssen@gmail.com> 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 <njcoxstata@gmail.com> 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 <alex.olssen@gmail.com> 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 <njcoxstata@gmail.com> 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 <alex.olssen@gmail.com> 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
tchakravarty@ucsd.edu
tirthankar.chakravarty@gmail.com

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