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]

From |
Nick Cox <njcoxstata@gmail.com> |

To |
statalist@hsphsun2.harvard.edu |

Subject |
Re: st: generate stata variables in mata and set the names from matrices |

Date |
Fri, 29 Apr 2011 12:37:36 +0100 |

You must do more than change that one line! The references to `local' need changing too. But a better strategy is just to avoid using locals or globals altogether and to do it the Mata way. e.g. clear set obs 100 mata x = J(100, 3, 42) for (j=1; j<=cols(x); j++) { yname = "y" + strofreal(j) st_addvar("float", yname) st_store(., yname, x[,j]) } end See also Bill Gould at <http://www.hsph.harvard.edu/cgi-bin/lwgate/STATALIST/archives/statalist.1101/Author/article-871.html> and in due course Stata Tip 100 (Stata Journal in press). Nick On Fri, Apr 29, 2011 at 12:11 PM, Cyrus Levy <levy.cyrus@gmail.com> wrote: > I changed the line below > > stata(`"local namer=radian[1,rd]"') > > to > > stata(`"global namer=radian[1,rd]"') > > but it still doesn't work as I want... Line by line entry works this way as > well. > (by the way, there must be a shorter way to code what I want like 3 lines > shorter but how) > > > On 4/29/2011 5:36 AM, Nick Cox wrote: >> >> Evidently a local macro defined in one place is not visible in another. >> >> See a posting from Tuesday: >> >> http://www.stata.com/statalist/archive/2011-04/msg01227.html >> >> Nick >> >> 2011/4/29 Cyrus Levy<levy.cyrus@gmail.com>: >>> >>> I want to generate stata variables in mata, and set the names of those >>> variables using a mata matrix. I use the code below which is supposed to >>> work -it works when I enter the lines line by line-, but then when I run >>> it >>> in a do file, it doesn't work. It doesn't generate a HHI_R50 variable. It >>> generates a HHI_R variable with no extension referring to the >>> corresponding >>> matrix value. What's wrong? >>> >>> ... >>> mata >>> ... >>> radian=(50,75,200) >>> for (rd=1; rd<=cols(radian); rd++) { >>> ... >>> st_matrix("radian", radian) >>> st_numscalar("rd", rd) >>> stata(`"local namer=radian[1,rd]"') >>> stata("gen HHI_R`namer'=.") >>> st_store(., "HHI_R`namer'", HHI_R) >>> } >>> end >>> ... >>> * * 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/

**References**:**st: generate stata variables in mata and set the names from matrices***From:*Cyrus Levy <levy.cyrus@gmail.com>

**Re: st: generate stata variables in mata and set the names from matrices***From:*Nick Cox <njcoxstata@gmail.com>

**Re: st: generate stata variables in mata and set the names from matrices***From:*Cyrus Levy <levy.cyrus@gmail.com>

- Prev by Date:
**Re: st: generate stata variables in mata and set the names from matrices** - Next by Date:
**Re: st: Left truncation in survival analysis** - Previous by thread:
**Re: st: generate stata variables in mata and set the names from matrices** - Next by thread:
**st: Reshape problem** - Index(es):