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 orgtype


From   Matthew White <[email protected]>
To   [email protected]
Subject   Re: st: mata orgtype
Date   Tue, 23 Apr 2013 12:53:46 -0400

Hi Tomas,

The Stata Journal article "Mata Matters: Subscripting" reads, "If s is
a scalar, you can refer to s, s[1], or s[1,1]." So even if prods ends
up as one element and a scalar, you can still refer to it using
prods[i].

Best,
Matt

On Tue, Apr 23, 2013 at 7:46 AM, George Vega Yon <[email protected]> wrote:
> May be you can try cheating mata. This is by adding an empty first element like
>
> Prods="",tokens(...
>
> And start the loop from the second element. This way you will be sure
> that you are working with a rowvector.
>
> Cheers,
>
> George Vega Yon
> 7 647 2552
> http://cl.linkedin.com/in/georgevegayon
>
>
> 2013/4/23 Nick Cox <[email protected]>
>>
>> I don't recall seeing this varying behaviour, but then again I don't
>> think I have ever tried this.
>>
>> I think we'd need a reproducible example to comment.
>>
>> Meanwhile, the main purpose of -levelsof- was, and is, to make
>> analyses easier in Stata. A near equivalent in Mata is to apply
>> -uniqrows()- to variables read in as vectors. I'd expect that to be
>> faster too.
>>
>> Nick
>> [email protected]
>>
>>
>> On 23 April 2013 00:29, Tomáš Houška <[email protected]> wrote:
>>
>> > I have a Stata macro generated by -levelsof- and I am trying to parse
>> > it in mata with -tokens- so that I can run mata loops with it...
>> > example:
>> >
>> > levelsof product, local(product_id)
>> > mata
>> > prods=tokens(st_local("product_id"))
>> > for(i = 1; i<=length(prods); i++) {
>> > ... commands including prods[i] ...
>> > }
>> > end
>> >
>> > My problem is that on some types of variables, the resulting mata item
>> > (in this case "prods") is a row vector, but sometimes it is a scalar
>> > string. Once it is a scalar string, I cannot refer to items on
>> > individual positions by -prods[i]- as I can do when it is a row
>> > vector.
>> > Is there a rule to which type gets created and when? Or is there a way
>> > to make sure that row vector  gets created?
>>
>> *
>> *   For searches and help try:
>> *   http://www.stata.com/help.cgi?search
>> *   http://www.stata.com/support/faqs/resources/statalist-faq/
>> *   http://www.ats.ucla.edu/stat/stata/
>
> *
> *   For searches and help try:
> *   http://www.stata.com/help.cgi?search
> *   http://www.stata.com/support/faqs/resources/statalist-faq/
> *   http://www.ats.ucla.edu/stat/stata/



-- 
Matthew White
Senior Project Associate
Innovations for Poverty Action
101 Whitney Avenue, New Haven, CT 06510 USA
www.poverty-action.org

*
*   For searches and help try:
*   http://www.stata.com/help.cgi?search
*   http://www.stata.com/support/faqs/resources/statalist-faq/
*   http://www.ats.ucla.edu/stat/stata/


© Copyright 1996–2018 StataCorp LLC   |   Terms of use   |   Privacy   |   Contact us   |   Site index