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 at the end of May, 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   Nick Cox <njcoxstata@gmail.com>
To   statalist@hsphsun2.harvard.edu
Subject   Re: st: Mata and do files
Date   Thu, 11 Aug 2011 00:36:34 +0100

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/


© Copyright 1996–2014 StataCorp LP   |   Terms of use   |   Privacy   |   Contact us   |   Site index